Recurring Payments REST API

Documentation for Payson Recurring Payments REST API.

API URLs

Live environment
https://api.payson.se/2.0/
Test environment
https://test-api.payson.se/2.0/

Ensure that all API calls are made with TLS 1.1 or higher.

API endpoints

/Accounts

/RecurringSubscriptions
/RecurringSubscriptions/{id}
/RecurringSubscriptions?{status}

/RecurringPayments
/RecurringPayments/{id}
/RecurringPayments?{status}

Authentication

The authorization used is basic authentication and you need an Agent ID and an API Key to call these methods.

The Agent ID and an API Key are used to create an auth-string which is used in the message headers to authorize calls.

Auth-string = Base64 representation of “Agent ID:API Key”

Example
Agent ID = 4
API Key = 2acab30d-fe50-426f-90d7-8c60a7eb31d4

Combined these give us a credential string:
4:2acab30d-fe50-426f-90d7-8c60a7eb31d4

Which base64-encoded gives us the auth-string:
JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==

Get account information

Request

GET https://test-api.payson.se/2.0/Accounts
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
Content-Type: application/json
Response CodesStatusDescription
200OkThe call was successful. The requested resource will be returned in the response body.
401UnauthorizedThe authorization failed.
Response

HTTP/1.1 200 OK
Content-Type: application/json
{
   "accountEmail":"testagent-checkout2@payson.se",
   "status":"Approved",
   "merchantId":4,
   "enabledForInvoice":true,
   "enabledForpaymentPlan":true,
   "enabledForRecurringPayments":true
}

Create subscription

Request

POST https://test-api.payson.se/2.0/RecurringSubscriptions
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
Content-Type: application/json
{
   "customer":{ (customer object, optional)
      "city": (string, optional),
      "countryCode": (string, optional),
      "identityNumber": (string, optional),
      "email": (string, optional),
      "firstName": (string, optional),
      "lastName": (string, optional),
      "phone": (string, optional),
      "postalCode": (string, optional),
      "street": (string, optional),
      "type": (string, optional)
   },
   "agreement":{ (agreement object, required)
      "currency": (string, required)
   },
   "merchant":{ (merchant object, required)
      "checkoutUri": (string, required),
      "confirmationUri": (string, required),
      "notificationUri": (string, required),
      "termsUri": (string, required),
      "partnerId": (string, optional),
      "validationUri": (string, optional),
      "integrationInfo": (string, optional),
      "reference": (string, optional)
   },
   "gui":{ (gui object, optional)
      "colorScheme": (string, optional),
      "locale": (string, optional),
      "requestPhone": (boolean, optional),
      "phoneOptional": (boolean, optional),
      "verification": (string, optional),
      "countries": (array, optional)
   }
}
{
   "merchant":{
      "checkoutUri":"https://www.examplestore.com/checkout.php",
      "confirmationUri":"https://www.examplestore.com/confirmation.php",
      "notificationUri":"https://www.examplestore.com/notification.php",
      "termsUri":"https://www.examplestore.com/terms.php"
   },
   "agreement":{
      "currency":"sek"
   }
}
Response CodesStatusDescription
201CreatedThe call was successful. The created resource will be returned in the response body.
400 or 500Bad requestThe call failed. Look at the returned JSON-object in the response body for more information.
401UnauthorizedThe authorization failed.

Response

HTTP/1.1 201 Created
Location: https://test-api.payson.se/2.0/RecurringSubscriptions/bfac7c19-d3cc-4f65-938c-a9d700d1d24f
{
    "status": "created",
    "id": "bfac7c19-d3cc-4f65-938c-a9d700d1d24f",
    "snippet": "<div id='paysonContainer'  url='https://test-www.payson.se/embedded/recurring?id=bfac7c19-d3cc-4f65-938c-a9d700d1d24f'></div><script type='text/javascript' src='https://test-www.payson.se/embedded/Content/payson.js?v2'></script>",
    "agreement": {
        "currency": "sek"
    },
    "customer": {
        "city": null,
        "countryCode": null,
        "identityNumber": null,
        "email": null,
        "firstName": null,
        "lastName": null,
        "phone": null,
        "postalCode": null,
        "street": null,
        "type": "person"
    },
    "merchant": {
        "checkoutUri": "https://www.examplestore.com/checkout.php",
        "confirmationUri": "https://www.examplestore.com/confirmation.php",
        "partnerId": null,
        "notificationUri": "https://www.examplestore.com/notification.php",
        "validationUri": null,
        "termsUri": "https://www.examplestore.com/terms.php",
        "integrationInfo": null,
        "reference": null
    },
    "gui": {
        "colorScheme": "white",
        "locale": "en",
        "requestPhone": false,
        "phoneOptional": false,
        "verification": "none",
        "countries": null
    },
    "history": {
        "created": "2019-01-16T13:43:56",
        "awaitingSubscription": null,
        "customerSubscribed": null,
        "customerUnsubscribed": null,
        "canceled": null,
        "expired": null
    },
    "links": [
        {
            "href": "https://test-api.payson.se/2.0/RecurringSubscriptions/bfac7c19-d3cc-4f65-938c-a9d700d1d24f",
            "rel": "self"
        }
    ]
}

Get subscription

Request

GET https://test-api.payson.se/2.0/RecurringSubscriptions/bfac7c19-d3cc-4f65-938c-a9d700d1d24f
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
Response CodesStatusDescription
200OkThe call was successful. The resource will be returned in the response body.
401UnauthorizedThe authorization failed.
404Not foundThe requested resource was not found.
Response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "status": "created",
    "id": "bfac7c19-d3cc-4f65-938c-a9d700d1d24f",
    "snippet": "<div id='paysonContainer'  url='https://test-www.payson.se/embedded/recurring?id=bfac7c19-d3cc-4f65-938c-a9d700d1d24f'></div><script type='text/javascript' src='https://test-www.payson.se/embedded/Content/payson.js?v2'></script>",
    "agreement": {
        "currency": "sek"
    },
    "customer": {
        "city": null,
        "countryCode": null,
        "identityNumber": null,
        "email": null,
        "firstName": null,
        "lastName": null,
        "phone": null,
        "postalCode": null,
        "street": null,
        "type": "person"
    },
    "merchant": {
        "checkoutUri": "https://www.examplestore.com/checkout.php",
        "confirmationUri": "https://www.examplestore.com/confirmation.php",
        "partnerId": null,
        "notificationUri": "https://www.examplestore.com/notification.php",
        "validationUri": null,
        "termsUri": "https://www.examplestore.com/terms.php",
        "integrationInfo": null,
        "reference": null
    },
    "gui": {
        "colorScheme": "white",
        "locale": "en",
        "requestPhone": false,
        "phoneOptional": false,
        "verification": "none",
        "countries": null
    },
    "history": {
        "created": "2019-01-16T13:43:56",
        "awaitingSubscription": null,
        "customerSubscribed": null,
        "customerUnsubscribed": null,
        "canceled": null,
        "expired": null
    },
    "links": [
        {
            "href": "https://test-api.payson.se/2.0/RecurringSubscriptions/bfac7c19-d3cc-4f65-938c-a9d700d1d24f",
            "rel": "self"
        }
    ]
}

Update subscription

Request

PUT https://test-api.payson.se/2.0/RecurringSubscriptions/bfac7c19-d3cc-4f65-938c-a9d700d1d24f
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
Content-Type: application/json
{
    "status": "created",
    "id": "bfac7c19-d3cc-4f65-938c-a9d700d1d24f",
    "agreement": {
        "currency": "sek"
    },
    "merchant": {
        "checkoutUri": "https://www.examplestore.com/checkout.php",
        "confirmationUri": "https://www.examplestore.com/confirmation.php",
        "notificationUri": "https://www.examplestore.com/notification.php",
        "termsUri": "https://www.examplestore.com/terms.php",
    },
    "gui": {
        "colorScheme": "gray"
    }
}
Response CodesStatusDescription
200OkThe call was successful. The updated resource will be returned in the response body.
400Bad requestThe call failed. Look at the returned JSON-object in the response body for more information.
401UnauthorizedThe authorization failed.
Response

HTTP/1.1 200 OK
Location: https://test-api.payson.se/2.0/Checkouts/a273a0b8-402c-428f-99a0-a93f00df6bf6
Content-Type: application/json
{
    "status": "created",
    "id": "bfac7c19-d3cc-4f65-938c-a9d700d1d24f",
    "snippet": "<div id='paysonContainer'  url='https://test-www.payson.se/embedded/recurring?id=bfac7c19-d3cc-4f65-938c-a9d700d1d24f'></div><script type='text/javascript' src='https://test-www.payson.se/embedded/Content/payson.js?v2'></script>",
    "agreement": {
        "currency": "sek"
    },
    "customer": {
        "city": null,
        "countryCode": null,
        "identityNumber": null,
        "email": null,
        "firstName": null,
        "lastName": null,
        "phone": null,
        "postalCode": null,
        "street": null,
        "type": "person"
    },
    "merchant": {
        "checkoutUri": "https://www.examplestore.com/checkout.php",
        "confirmationUri": "https://www.examplestore.com/confirmation.php",
        "partnerId": null,
        "notificationUri": "https://www.examplestore.com/notification.php",
        "validationUri": null,
        "termsUri": "https://www.examplestore.com/terms.php",
        "integrationInfo": null,
        "reference": null
    },
    "gui": {
        "colorScheme": "gray",
        "locale": "en",
        "requestPhone": false,
        "phoneOptional": false,
        "verification": "none",
        "countries": null
    },
    "history": {
        "created": "2019-01-16T13:43:56",
        "awaitingSubscription": null,
        "customerSubscribed": null,
        "customerUnsubscribed": null,
        "canceled": null,
        "expired": null
    },
    "links": [
        {
            "href": "https://test-api.payson.se/2.0/RecurringSubscriptions/bfac7c19-d3cc-4f65-938c-a9d700d1d24f",
            "rel": "self"
        }
    ]
}

List subscriptions

Request

GET https://test-api.payson.se/2.0/RecurringSubscriptions?status=customerSubscribed
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
Content-Type: application/json
Response CodesStatusDescription
200OkThe call was successful. The requested resource will be returned in the response body.
400Bad requestThe call failed. Look at the returned JSON-object in the response body for more information.
401UnauthorizedThe authorization failed.
Response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "pageSize": 20,
    "page": 1,
    "totalPages": 1,
    "count": 13,
    "totalCount": 13,
    "data": [
        {
            "status": "customerSubscribed",
            "id": "4faba7e7-9913-48a4-81e8-a9a100e348ea",
            "snippet": "<div id='paysonContainer'  url='https://test-www.payson.se/embedded/recurring?id=4faba7e7-9913-48a4-81e8-a9a100e348ea'></div><script type='text/javascript' src='https://test-www.payson.se/embedded/Content/payson.js?v2'></script>",
            "agreement": {
                "currency": "sek"
            },
            "customer": {
                "city": "Stan",
                "countryCode": "SE",
                "identityNumber": "4605092222",
                "email": "test@payson.se",
                "firstName": "Tess",
                "lastName": "Persson",
                "phone": null,
                "postalCode": "99999",
                "street": "Testgatan 1",
                "type": "person"
            },
            "merchant": {
                "checkoutUri": "https://demoshop.payson.se/2.0/apidemo/Checkout/Recurring/14",
                "confirmationUri": "https://demoshop.payson.se/2.0/apidemo/Confirmation/Recurring/14",
                "partnerId": null,
                "notificationUri": "https://demoshop.payson.se/2.0/apidemo/Notification/Recurring/14",
                "validationUri": null,
                "termsUri": "https://demoshop.payson.se/2.0/apidemo/Terms",
                "integrationInfo": null,
                "reference": null
            },
            "gui": {
                "colorScheme": "white",
                "locale": "sv",
                "requestPhone": false,
                "phoneOptional": false,
                "verification": "none",
                "countries": null
            },
            "history": {
                "created": "2018-11-23T14:47:30",
                "awaitingSubscription": "2018-11-23T14:47:45",
                "customerSubscribed": "2018-11-23T14:48:03",
                "customerUnsubscribed": null,
                "canceled": null,
                "expired": null
            },
            "links": [
                {
                    "href": "https://test-api.payson.se/2.0/RecurringSubscriptions/4faba7e7-9913-48a4-81e8-a9a100e348ea",
                    "rel": "self"
                }
            ]
        },
        {
            "status": "customerSubscribed",
            "id": "dafd580e-3bd1-4aa7-bab3-a9cb00b513fa",
            "snippet": "<div id='paysonContainer'  url='https://test-www.payson.se/embedded/recurring?id=dafd580e-3bd1-4aa7-bab3-a9cb00b513fa'></div><script type='text/javascript' src='https://test-www.payson.se/embedded/Content/payson.js?v2'></script>",
            "agreement": {
                "currency": "sek"
            },
            "customer": {
                "city": "Stan",
                "countryCode": "SE",
                "identityNumber": "4605092222",
                "email": "tess.t.persson@test.se",
                "firstName": "Tess",
                "lastName": "Persson",
                "phone": null,
                "postalCode": "99999",
                "street": "Testgatan 1",
                "type": "person"
            },
            "merchant": {
                "checkoutUri": "http://localhost/paysonsandbox/example/recurring-subscription-create.php",
                "confirmationUri": "http://localhost/paysonsandbox/example/confirmation.php?ref=prp",
                "partnerId": null,
                "notificationUri": "http://localhost/paysonsandbox/example/notification.php?ref=prp",
                "validationUri": null,
                "termsUri": "http://localhost/paysonsandbox/example/terms.php",
                "integrationInfo": null,
                "reference": null
            },
            "gui": {
                "colorScheme": "white",
                "locale": "sv",
                "requestPhone": false,
                "phoneOptional": false,
                "verification": "none",
                "countries": null
            },
            "history": {
                "created": "2019-01-04T11:59:16",
                "awaitingSubscription": "2019-01-04T11:59:25",
                "customerSubscribed": "2019-01-04T11:59:27",
                "customerUnsubscribed": null,
                "canceled": null,
                "expired": null
            },
            "links": [
                {
                    "href": "https://test-api.payson.se/2.0/RecurringSubscriptions/dafd580e-3bd1-4aa7-bab3-a9cb00b513fa",
                    "rel": "self"
                }
            ]
        }
    ]
}

Create payment

Request

POST https://test-api.payson.se/2.0/RecurringPayments
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
{
    "subscriptionId": (subscription id, required),
    "notificationUri": (string, required),
    "order":{ (order object, required)
        "currency": (string, required),
        "items":[ (array, required)
           {
              "name": (string, required),
              "unitPrice": (decimal, required),
              "quantity": (decimal, required),
              "taxRate": (decimal, optional),
              "reference": (string, optional),
              "discountRate": (decimal, optional),
              "ean": (string, optional),
              "imageUri": (string, optional),
              "type": (string, optional),
              "uri": (string, optional)
           }
        ]
     },
    "description": (string, optional)
}
{
    "subscriptionId": "5d4961bd-d800-4353-9e0a-a9d500a16e54",
    "notificationUri": "https://www.examplestore.com/notification.php",
    "order": {
        "currency": "sek",
        "items": [
            {
                "name": "Product 1",
                "unitPrice": 150.00,
                "quantity": 1.00,
                "taxRate": 0.25
            }
        ]
    }
}
Response CodesStatusDescription
200OkThe call was successful. The resource will be returned in the response body.
401UnauthorizedThe authorization failed.
404Not foundThe requested resource was not found.
Response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "id": "1e5a7ce0-008b-4421-8c34-a9d8009b27cc",
    "created": "2019-01-17T10:24:54",
    "subscriptionId": "5d4961bd-d800-4353-9e0a-a9d500a16e54",
    "purchaseId": 3808235,
    "order": {
        "currency": "sek",
        "totalFeeExcludingTax": 4.5,
        "totalFeeIncludingTax": 5.63,
        "totalPriceExcludingTax": 120,
        "totalPriceIncludingTax": 150,
        "totalTaxAmount": 30,
        "totalCreditedAmount": 0,
        "items": [
            {
                "itemId": "ffd6e0e3-c4fd-4ad2-b425-a9d8009b27cc",
                "discountRate": 0,
                "ean": null,
                "imageUri": null,
                "name": "Product 1",
                "quantity": 1,
                "reference": null,
                "taxRate": 0.25,
                "totalPriceExcludingTax": 120,
                "totalPriceIncludingTax": 150,
                "totalTaxAmount": 30,
                "creditedAmount": 0,
                "type": "physical",
                "unitPrice": 150,
                "uri": null
            }
        ]
    },
    "description": null,
    "notificationUri": null,
    "status": "readyToShip",
    "links": [
        {
            "href": "https://test-api.payson.se/2.0/RecurringPayments/1e5a7ce0-008b-4421-8c34-a9d8009b27cc",
            "rel": "self"
        }
    ]
}

Get payment

Request

GET https://test-api.payson.se/2.0/RecurringPayments/1e5a7ce0-008b-4421-8c34-a9d8009b27cc
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
Response CodesStatusDescription
200OkThe call was successful. The resource will be returned in the response body.
401UnauthorizedThe authorization failed.
404Not foundThe requested resource was not found.
Response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "id": "1e5a7ce0-008b-4421-8c34-a9d8009b27cc",
    "created": "2019-01-17T10:24:54",
    "subscriptionId": "5d4961bd-d800-4353-9e0a-a9d500a16e54",
    "purchaseId": 3808235,
    "order": {
        "currency": "sek",
        "totalFeeExcludingTax": 4.5,
        "totalFeeIncludingTax": 5.63,
        "totalPriceExcludingTax": 120,
        "totalPriceIncludingTax": 150,
        "totalTaxAmount": 30,
        "totalCreditedAmount": 0,
        "items": [
            {
                "itemId": "ffd6e0e3-c4fd-4ad2-b425-a9d8009b27cc",
                "discountRate": 0,
                "ean": null,
                "imageUri": null,
                "name": "Product 1",
                "quantity": 1,
                "reference": null,
                "taxRate": 0.25,
                "totalPriceExcludingTax": 120,
                "totalPriceIncludingTax": 150,
                "totalTaxAmount": 30,
                "creditedAmount": 0,
                "type": "physical",
                "unitPrice": 150,
                "uri": null
            }
        ]
    },
    "description": null,
    "notificationUri": null,
    "status": "readyToShip",
    "links": [
        {
            "href": "https://test-api.payson.se/2.0/RecurringPayments/1e5a7ce0-008b-4421-8c34-a9d8009b27cc",
            "rel": "self"
        }
    ]
}

Update payment

Request

PUT https://test-api.payson.se/2.0/RecurringPayments/1e5a7ce0-008b-4421-8c34-a9d8009b27cc
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
{
    "id": "1e5a7ce0-008b-4421-8c34-a9d8009b27cc",
    "created": "2019-01-17T10:24:54",
    "subscriptionId": "5d4961bd-d800-4353-9e0a-a9d500a16e54",
    "purchaseId": 3808235,
    "order": {
        "currency": "sek",
        "items": [
            {
                "itemId": "ffd6e0e3-c4fd-4ad2-b425-a9d8009b27cc",
                "name": "Product 1",
                "quantity": 1,
                "taxRate": 0.25,
                "creditedAmount": 10,
                "unitPrice": 150
            }
        ]
    },
    "notificationUri": "https://www.examplestore.com/notification.php",
    "status": "shipped"
}
Response CodesStatusDescription
200OkThe call was successful. The resource will be returned in the response body.
401UnauthorizedThe authorization failed.
404Not foundThe requested resource was not found.
Response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "id": "1e5a7ce0-008b-4421-8c34-a9d8009b27cc",
    "created": "2019-01-17T10:24:54",
    "subscriptionId": "5d4961bd-d800-4353-9e0a-a9d500a16e54",
    "purchaseId": 3808235,
    "order": {
        "currency": "sek",
        "totalFeeExcludingTax": 4.5,
        "totalFeeIncludingTax": 5.63,
        "totalPriceExcludingTax": 120,
        "totalPriceIncludingTax": 150,
        "totalTaxAmount": 30,
        "totalCreditedAmount": 10,
        "items": [
            {
                "itemId": "ffd6e0e3-c4fd-4ad2-b425-a9d8009b27cc",
                "discountRate": 0,
                "ean": null,
                "imageUri": null,
                "name": "Product 1",
                "quantity": 1,
                "reference": null,
                "taxRate": 0.25,
                "totalPriceExcludingTax": 120,
                "totalPriceIncludingTax": 150,
                "totalTaxAmount": 30,
                "creditedAmount": 10,
                "type": "physical",
                "unitPrice": 150,
                "uri": null
            }
        ]
    },
    "description": null,
    "notificationUri": "https://www.examplestore.com/notification.php",
    "status": "shipped",
    "links": [
        {
            "href": "https://test-api.payson.se/2.0/RecurringPayments/1e5a7ce0-008b-4421-8c34-a9d8009b27cc",
            "rel": "self"
        }
    ]
}

List payments

Request

GET https://test-api.payson.se/2.0/RecurringPayments?status=readytoship
Host: test-api.payson.se
Authorization: Basic JzQ6MmFjYWIzMGQtZmU1MC00MjZmLTkwZDctOGM2MGE3ZWIzMWQ0Jw==
Content-Type: application/json
Response CodesStatusDescription
200OkThe call was successful. The requested resource will be returned in the response body.
400Bad requestThe call failed. Look at the returned JSON-object in the response body for more information.
401UnauthorizedThe authorization failed.
Response

HTTP/1.1 200 OK
Content-Type: application/json
{
    "pageSize": 20,
    "page": 1,
    "totalPages": 1,
    "count": 13,
    "totalCount": 13,
    "data": [
        {
            "id": "0fb03b40-8a1b-4c4a-9c4b-a9d1010d2a3f",
            "created": "2019-01-10T17:20:00",
            "subscriptionId": "3ad8eb16-ecce-4cce-801c-a9d100fc4504",
            "purchaseId": 3807969,
            "order": {
                "currency": "sek",
                "totalFeeExcludingTax": 15.39,
                "totalFeeIncludingTax": 19.24,
                "totalPriceExcludingTax": 427.14,
                "totalPriceIncludingTax": 540,
                "totalTaxAmount": 112.86,
                "totalCreditedAmount": 0,
                "items": [
                    {
                        "itemId": "0b2a5f5f-250a-42b2-84c1-a9d1010d2a40",
                        "discountRate": 0,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestItem3",
                        "quantity": 2,
                        "reference": "R103",
                        "taxRate": 0,
                        "totalPriceExcludingTax": 40,
                        "totalPriceIncludingTax": 40,
                        "totalTaxAmount": 0,
                        "creditedAmount": 0,
                        "type": "physical",
                        "unitPrice": 20,
                        "uri": null
                    },
                    {
                        "itemId": "6f5f3005-0f6f-4f55-9589-a9d1010d2a40",
                        "discountRate": 0,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestFee",
                        "quantity": 1,
                        "reference": "F001",
                        "taxRate": 0.25,
                        "totalPriceExcludingTax": 80,
                        "totalPriceIncludingTax": 100,
                        "totalTaxAmount": 20,
                        "creditedAmount": 0,
                        "type": "fee",
                        "unitPrice": 100,
                        "uri": null
                    },
                    {
                        "itemId": "14585100-c3e8-46db-9bf1-a9d1010d2a40",
                        "discountRate": 0,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestItem2",
                        "quantity": 3,
                        "reference": "R102",
                        "taxRate": 0.4,
                        "totalPriceExcludingTax": 107.14,
                        "totalPriceIncludingTax": 150,
                        "totalTaxAmount": 42.86,
                        "creditedAmount": 0,
                        "type": "physical",
                        "unitPrice": 50,
                        "uri": null
                    },
                    {
                        "itemId": "995f5373-4914-44c4-b038-a9d1010d2a40",
                        "discountRate": 0.5,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestItem1",
                        "quantity": 1,
                        "reference": "R101",
                        "taxRate": 0.25,
                        "totalPriceExcludingTax": 200,
                        "totalPriceIncludingTax": 250,
                        "totalTaxAmount": 50,
                        "creditedAmount": 0,
                        "type": "physical",
                        "unitPrice": 500,
                        "uri": null
                    }
                ]
            },
            "description": null,
            "notificationUri": null,
            "status": "readyToShip",
            "links": [
                {
                    "href": "https://test-api.payson.se/2.0/RecurringPayments/0fb03b40-8a1b-4c4a-9c4b-a9d1010d2a3f",
                    "rel": "self"
                }
            ]
        },
        {
            "id": "607bc67c-8104-43d9-b2b2-a9d101116f9d",
            "created": "2019-01-10T17:35:33",
            "subscriptionId": "3ad8eb16-ecce-4cce-801c-a9d100fc4504",
            "purchaseId": 3807970,
            "order": {
                "currency": "sek",
                "totalFeeExcludingTax": 15.39,
                "totalFeeIncludingTax": 19.24,
                "totalPriceExcludingTax": 427.14,
                "totalPriceIncludingTax": 540,
                "totalTaxAmount": 112.86,
                "totalCreditedAmount": 0,
                "items": [
                    {
                        "itemId": "5febd768-b57c-4708-9901-a9d101116f9e",
                        "discountRate": 0,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestItem2",
                        "quantity": 3,
                        "reference": "R102",
                        "taxRate": 0.4,
                        "totalPriceExcludingTax": 107.14,
                        "totalPriceIncludingTax": 150,
                        "totalTaxAmount": 42.86,
                        "creditedAmount": 0,
                        "type": "physical",
                        "unitPrice": 50,
                        "uri": null
                    },
                    {
                        "itemId": "31b0f4cf-c589-452b-aadf-a9d101116f9e",
                        "discountRate": 0,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestFee",
                        "quantity": 1,
                        "reference": "F001",
                        "taxRate": 0.25,
                        "totalPriceExcludingTax": 80,
                        "totalPriceIncludingTax": 100,
                        "totalTaxAmount": 20,
                        "creditedAmount": 0,
                        "type": "fee",
                        "unitPrice": 100,
                        "uri": null
                    },
                    {
                        "itemId": "de66f27e-3dfc-4f43-ae0e-a9d101116f9e",
                        "discountRate": 0,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestItem3",
                        "quantity": 2,
                        "reference": "R103",
                        "taxRate": 0,
                        "totalPriceExcludingTax": 40,
                        "totalPriceIncludingTax": 40,
                        "totalTaxAmount": 0,
                        "creditedAmount": 0,
                        "type": "physical",
                        "unitPrice": 20,
                        "uri": null
                    },
                    {
                        "itemId": "ee866b30-e024-49e2-b209-a9d101116f9e",
                        "discountRate": 0.5,
                        "ean": null,
                        "imageUri": null,
                        "name": "TestItem1",
                        "quantity": 1,
                        "reference": "R101",
                        "taxRate": 0.25,
                        "totalPriceExcludingTax": 200,
                        "totalPriceIncludingTax": 250,
                        "totalTaxAmount": 50,
                        "creditedAmount": 0,
                        "type": "physical",
                        "unitPrice": 500,
                        "uri": null
                    }
                ]
            },
            "description": null,
            "notificationUri": null,
            "status": "readyToShip",
            "links": [
                {
                    "href": "https://test-api.payson.se/2.0/RecurringPayments/607bc67c-8104-43d9-b2b2-a9d101116f9d",
                    "rel": "self"
                }
            ]
        }
    ]
}

Notifications

After a subscription or payment has had its status changed to a status where the merchant may need to act, a notification will be sent. The notification is a POST call to the notificationUri specified with the id as a querystring parameter.

Example
https://www.myexamplestore.nu/notification.php/?subscription=ccf49366-ea2d-410f-8bbf-a97b00912a37
https://www.myexamplestore.nu/notification.php/?payment=ccf49366-ea2d-410f-8bbf-a97b00912a37

Make sure the notificationUri is publicly accessible for notifications to work.

The POST to notificationUri expect a 200 OK in response and will keep trying for up to 24 hours if the response is anything else.

Subscriptions – Notification is sent whenThe subscription will have status
The subscription is complete and the merchant can now create payments.customerSubscribed
The subscription is canceled.customerUnSubscribed
Payments – Notification is sent whenThe payment will have status
The payment is complete and the order should be shipped.readyToShip
The payment has been marked as shipped.shipped
Money has been paid out to the merchant´s PaysonAccount.paidToAccount
The payment was canceled.canceled
The payment has been fully credited.paidToAccount*
The payment has been partially credited.shipped*

*Check totalCreditedAmount to determine if the payment has been credited.