NAV
json

Introduction

  _____                   _
 |  __ \            /\   | |
 | |__) | __ ___   /  \  | |__   ___  _ __   ___
 |  ___/ '__/ _ \ / /\ \ | '_ \ / _ \| '_ \ / _ \
 | |   | | | (_) / ____ \| |_) | (_) | | | | (_) |
 |_|   |_|  \___/_/    \_\_.__/ \___/|_| |_|\___/

Welcome to the ProAbono API Backoffice documentation.
API Backoffice is designed to help power users and third party integrators to deal with data export and advanced automation capabilities. Every single functionnality of the ProAbono backoffice can be recoded and rebranded with this API.

ProAbono is organized around a RESTful Architecture and an API-First design.

Note that this API is designed to be used from a server to a server, and NOT from a client to server in javascript. This is very important for security purpose.

Compatibility : upward compatibility on this API is not guaranteed unless written agreement limited to the required resources.

Core concepts

Getting Started

Getting started with the ProAbono API is easy:

  1. Sign up.
  2. Get your API Keys and Endpoints from “My Profile” / Integration.
  3. Try it out! Create your first customer.

Your First Requests

POST https://{your-domain}.via.proabono.com/Distribution/Customers
Content-Type: application/json
Accept: application/json
Accept-Encoding: gzip, deflate, compress

{
    Email: 'john@doe.com',
    Name: 'Mr Doe'
}
...

GET https://{your-domain}.via.proabono.com/Distribution/Customers/10

The API works with JSON.

To ensure maximal compatibility, use the Content-Type and Accept headers in all requests :

All requests must be made over HTTPS.

Authentication

 ______     __  __     ______   __  __
/\  __ \   /\ \/\ \   /\__  _\ /\ \_\ \
\ \  __ \  \ \ \_\ \  \/_/\ \/ \ \  __ \
 \ \_\ \_\  \ \_____\    \ \_\  \ \_\ \_\
  \/_/\/_/   \/_____/     \/_/   \/_/\/_/

All API requests must be made over HTTPS.
Each request requires authentication.

Notice : The requests must be server to server. Do not joke with security.

API ENDPOINT

API Backoffice : https://{your-domain}.via.ProAbono.com

API KEYS

Get your API Keys (Agent key and API key) from “My Profile” / Integration.

BASIC AUTHENTICATION

Authentication to the API occurs via HTTP Basic Auth.

To authenticate your request, you have to add a valid Authorization header.

3 STEPS TO BUILD THE AUTHORIZATION HEADER

POST https://{your-domain}.via.proabono.com/Distribution/Customers
Content-Type: application/json
Accept: application/json
Accept-Encoding: gzip, deflate, compress
Authorization: Basic YzdmYTU3YjgtNDg2MS00ODU3LTlhMzgtMDYxMGRkNGZmZTE2OmY2Nzk3YWYxLTc5MWItNDBiMS04YmRhLWM0MTlmZTYxNjM2NQ==

{
    Email: 'john@doe.com',
    Name: 'Mr Doe'
}
  1. Concatenate agent_key and api_key separated with ’:’ -> agent_key:api_key
    c7fa57b8-4861-4857:f6797af1-791b-40b1

  2. Base-64 encode the string
    YzdmYTU3YjgtNDg2MS00ODU3OmY2Nzk3YWYxLTc5MWItNDBiMQ==

  3. Use the encoded string in the header of your request
    Authorization: Basic YzdmYTU3YjgtNDg2MS00ODU3OmY2Nzk3YWYxLTc5MWItNDBiMQ==

Sign up in order to get your Agent Key and API Key.

Convention

HTTP Response Codes

  _______     ______      ______           ______    __   ___
 /"     "\   /    " \    /    " \         /    " \  |/"| /  ")
(__/\    :) // ____  \  // ____  \       // ____  \ (: |/   /
    / ___/ /  /    ) :)/  /    ) :)     /  /    ) :)|    __/
   // \___(: (____/ //(: (____/ //     (: (____/ // (// _  \
  (:  /  "\\        /  \        /       \        /  |: | \  \
   \_______)\"_____/    \"_____/         \"_____/   (__|  \__)

ProAbono uses conventional HTTP response codes to indicate success or failure of an API request.

In general,

The table below describes the response codes that will be issued and gives potential reasons as to why they may have been sent back.

Successful Response Codes
200 OK: Successful request
201 Created: Successfully created the resource.
204 No Content: Successfully processed the request, but no content was sent back
Unsuccessful Response Codes
400 Bad Request: Invalid or missing request parameters
Inspect the request parameters and ensure that all required parameters are supplied.

Check the response body : ProAbono may supply a hint on how to fix the problem.
401 Unauthorized: Invalid or no credentials passed in the request
Inspect the authorisation header and ensure that a valid authentication has been provided.
403 Forbidden: The operation cannot be processed. The response contains a JSON error object with more information
404 Not Found: The requested Resource was not found
Check your URL syntax or parameters.
405 Method not allowed: The requested resource does not support the supplied HTTP method
Check the API documentation, you are doing something unhealthy.
406 Not Acceptable: Provided Content-Type or Accept header is not supported.
You should probably use application/json.
422 Unprocessable Entity: Request syntax is correct, but its content is not.
The response body will contains a list of errors that will tell you exactly where the problems are.
See Errors section.
500 Internal Server Error: An internal error occurred when processing the request.
Attempt the request again and if the HTTP 500 error re-occurs contact support@proabono.com
501 Method Not Implemented: The requested resource is not implemented yet.
Found any ? You probably are a very advanced user. Contact tech support to know more about the release date.

Errors

Example of an error
{
    "Target": "AmountRecurrence",
    "Code": "Error.Property.ConvertValue.Exception", 
    "Message": "Exception while converting given value for the property",
    "Exception": "Input string was not in a correct format"
}

If your request results in a 4xx or 5xx HTTP code, the response body does contain an error.

Property Description Always returned?
Target The related property No
Code The error code Yes
Message A message localized in your language Yes
Exception More about the error No
Example of a list of errors
[
    {
        "Target": "AmountRecurrence",
        "Code": "Error.Property.ValueRequired",
        "Message": "A value is required for the property"
    },
    {
        "Target": "Ammount",
        "Code": "Error.Property.UnexpectedProperty",
        "Message": "Unexpected property"
    }
]

List of Errors

Errors list is just a JSON array of errors.

Pagination

{
    "Page": 2,          
    "SizePage": 3,     
    "Count": 3,        
    "TotalItems": 40,   
    "DateGenerated": "2014-12-11T12:45:05.1234714Z",
    "Items": [
        { 
            "item":"1"
        },
        { 
            "item":"2"
        },
        { 
            "item":"3"
        }       
    ],
    "Links": [
        {
            "rel": "prev",
            "href": "/Subscriptions?page=1&SizePage=3"
        },
        {
            "rel": "next",
            "href": "/Subscriptions?page=3&SizePage=3"
        }
    ]
}

Requests that contain multiple items will be paginated by default.

Filters

 GET https://api-2.proabono.com/Subscriptions?ReferenceSegment=Sandbox-eur&Page=3&SizePage=20

Every objects collection has multiple available filters that can be passed in the URL.

Available filters are detailled for each object collection below.

Objects

Example Request - Retrieve a Customer
GET https://sandbox-eur.via.proabono.com/Distribution/Customers/152867
Example Response
{
    "Id": 152867,
    "DateUpdate": "2015-04-22T17:54:03.92Z",
    "IdUserUpdate": 11,
    "IdSegment": 3,
    "IdUserCreation": 11,
    "DateCreation": "2015-04-22T17:54:03.92Z",
    "StateLife": "Ok",
    "IdBusiness": 2,
    "ReferenceCustomer": "ab83c0de-cc96-4cd5-996b-d6dac962901d",
    "Name": "John Doe",
    "Email": "john@doe.com",
    "Language": "fr",
    "Links": [
        {
            "rel": "self",
            "href": "/Distribution/Customers/152868"
        },
        {
            "rel": "related-address-billing",
            "href": "/Distribution/Customers/152867/AddressBilling"
        },
        {
            "rel": "related-address-shipping",
            "href": "/Distribution/Customers/152867/AddressShipping"
        }
    ]
}

ProAbono adds attributes to its objects. Here is the list of its attributes :

Parameter Mandatory ? Description Type
DateCreation yes Creation Date of the Object on ProAbono Datetime
IdUserCreation yes Id of user who created the Object Integer
DateUpdate yes Date of last update of the Object Datetime
IdUserUpdate yes Id of user who updated the Object recently Integer
IdBusiness no Id of Business in which the Object has been created Integer
IdSegment no Id of Segment in which the Object has been created Integer

Data Formats

Dates

Example Response
{
  "DateStart": "2017-08-09T12:38:55.00Z"
}

Dates are in universal time : UTC.

They are sent and received in ISO 8601 format : YYYY-MM-DDTHH:MM:SSZ

Time Unit

Unit Description
Day
Week
Month
Year

Languages

ProAbono supports all languages.
Proabono supports language codes in ISO 639-1 format.

However you are responsible for the translation.

Common language codes are :

Code Language
de German
en English
es Spanish
fr French
nl Dutch
pt Portuguese
it Italian

Countries

Proabono supports country codes in ISO_3166-1 alpha2 format.

Common Country Codes are :

Code Country
AU Australia
BR Brazil
CA Canada
DE Germany
ES Spain
FR France
GB United Kingdom of Great Britain
IT Italy
NL Netherlands
US United States of America

Region/Province/State

Proabono supports Region/Province/State codes in ISO_3166-2 format

Common Region/Province/State Codes are :

Country Code Region/Province/State code list Url Country
AU ISO_3166-2:AU Australia
BR ISO_3166-2:BR Brazil
CA ISO_3166-2:CA Canada
DE ISO_3166-2:DE Germany
ES ISO_3166-2:ES Spain
FR ISO_3166-2:FR France
GB ISO_3166-2:GB United Kingdom of Great Britain
IT ISO_3166-2:IT Italy
NL ISO_3166-2:NL Netherlands
US ISO_3166-2:US United States of America

State Subscription

State Subscription Description
InitiatedCustomer Subscription has been initiated by a Customer
InitiatedAgent Subscription has been initiated by an Agent
Delayed Subscription has been validated by the Customer AND the status will turn into Running at DateStart. See Subscription Object.
Running Subscription is running
SuspendedCustomer Subscription has been suspended by the Customer
SuspendedPaymentMissing Subscription has been suspended because a payment is missing
SuspendedAgent Subscription has been suspended by an Agent
SuspendedSystem Subscription has been suspended by the system (technical problem)
TerminatedAtRenewal Subscription will be terminated at the next renewal (i.e. at the end of the current period)
History Subscription is over
Terminated Subscription has been terminated
Deleted Subscription has been deleted

Type Feature

Type Feature Description
OnOff For features like Module, Content Access, …
Limitation Type for Feature which must be counted BUT its quantity will NOT be reset at each subscription renewal.
Consumption Type for Feature which must be counted AND its quantity will be reset at each subscription renewal.

Properties Feature

Property Description
UpdatableBeforeSubscription Authorize the Customer to modify the quantity of the Feature before subscription.
UpdatableAfterSubscription Authorize the Customer to modify the quantity of the Feature after subscription.
FreeInTrial During the Trial Period, any update (quantities) of the feature are free.

Type Payment

Type Payment Description
Free Subscription is free, no payment ever requested
ExternalCheck Payment with check
ExternalCash Payment with cash
ExternalBank Payment by wire transfer
ExternalOther Other payment type
Card Payment with payment card, automated renewal
DirectDebit Payment with bank account info, automated renewal

Type Credit

Type Credit Description
Refund -
Chargeback -

State Life

State Life Description
Ok -
ToModerate -
DisabledUser -
DisabledSystem -
DisabledModeration -
Deleted -

State Invoice

State Invoice Description
Draft Draft
PaymentExpected Payment expected
PaymentDue Payment due
Overdue Overdue
Disputed Disputed
Paid Paid
Cancelled Cancelled
MarkedDeleted Deleted
Deleted Deleted (for good)

State Payment

State Payment Description
Completed Payment succeeded
Pending Payment is expected
Failed Payment has failed
Canceled Payment has been canceled

Type GatewayPermission

Type GatewayPermission Description
CardDummy A fake card gateway (For tests only)
CardPaybox The gateway is Paybox (or compatible)
CardStripe The gateway is Stripe (or compatible)
DirectDebitDummySepa A fake directdebit gateway (For tests only)
DirectDebitGoCardless The gateway is GoCardless (or compatible)

Type Trigger

Type Trigger Description
CustomerAdded Customer - added
CustomerBillingAddressUpdated Customer - contact info updated
CustomerSettingsPaymentUpdated Customer - payment settings updated
CustomerBillingSucceeded Customer - billing succeeded
CustomerBillingFailed Customer - billing failed
CustomerChargingSucceeded Customer - charging succeeded
CustomerChargingPending Customer - charging pending
CustomerChargingFailed Customer - charging failed
CustomerChargingAutoFailedNoPermission Customer - auto-charging failed: no valid gateway permission
CustomerChargingAutoFailedNoRetry Customer - an auto-charging failed and cannot be retried
CustomerChargìngPendingValidationFailed Customer - pending charge validation failed
CustomerSuspended Customer - suspended
CustomerEnabled Customer - enabled
CustomerDeleted Customer - deleted
SubscriptionStarted Subscription - started
SubscriptionRenewed Subscription - renewed
SubscriptionUnsuspendedCustomer Subscription - unsuspended by the customer
SubscriptionSuspendedCustomer Subscription - suspended by the customer
SubscriptionSuspendedPaymentInfoMissing Subscription - interrupted (no payment info)
SubscriptionSuspendedPaymentDue Subscription - interrupted (payment due)
SubscriptionTerminatedAtRenewal Subscription - terminated at end of the billing period
SubscriptionTerminated Subscription - terminated
SubscriptionHistory Subscription - over
SubscriptionDeleted Subscription - deleted
SubscriptionUpdated Subscription - updated
SubscriptionFeaturesUpdated Subscription - features updated
SubscriptionUpgraded Subscription - upgraded
SubscriptionDateTermUpdated Subscription - renewal date updated
SubscriptionDelayedStartCancelled Subscription - delayed start cancelled
InvoiceDebitIssuedPaymentAuto Invoice - issued, charging programmed
InvoiceDebitIssuedPaymentDue Invoice - payment due
InvoiceDebitPaid Invoice - paid
InvoiceDebitCancelled Invoice - cancelled
InvoiceDebitPaymentFailed Invoice - payment failed
InvoiceDebitOverdue Invoice - overdue
GatewayPermissionSoonExpired Payment permission - Expires soon
GatewayPermissionExpired Payment permission - Expires
GatewayPermissionDefective Payment permission - Defective

Address Resource

Example
{
    "Company": "John Doe LLC",
    "FirstName": "John",
    "LastName": "Doe",
    "AddressLine1": "123 avenue des Champs Elysées",
    "AddressLine2": "1st Floor",
    "ZipCode": "75008",
    "City": "Paris",
    "Country": "FR",
    "Region": "FR-75",
    "Phone": "+33102030405",
    "TaxInformation":"FR1234567890"
}
Property Description Type
Id Id of the Address Object Integer
Company Name of the Company String
FirstName - String
LastName - String
AddressLine1 Line 1 of the Address String
AddressLine2 Line 2 of the Address String
ZipCode ZipCode of the Address String
City Name of the City String
Country Code of Country of the Address CountryCode
Region Region stands for Subdivision, Department, Region, Province, State of the Country RegionCode
TaxInformation Tax Information (VAT id, Num TVA Intra, GST…) String
Phone Phone Number String

See Object Convention

Metadata

Example Request "Create a Customer"
POST https://sandbox-eur.via.proabono.com/Distribution/Customers
{
    "ReferenceCustomer": "123456",
    "Name": "John Doe",
    "Email": "john@doe.com",
    "Language": "en",
    "ReferenceOffer": "premium-pro-plus",
    "Metadata":
        {
            "Gender":"Male",
            "Incomes": 150000,
            "Kids": 3
        }
}

A set of key/value pairs that you can add to an object (Customer, Subscription, …). It can be useful for storing additional information about the object in a structured format. You can unset individual keys if you POST an empty value for that key. You can clear all keys if you POST an empty value for metadata.

At most 5 key/value pairs per object.
Max length of a value is 450 characters.

API Backoffice - Customers

Customers refer to your users in your Site/Service/Application.

Each customer shares a reference called ReferenceCustomer in order to be easily found in your database and ProAbono.

A customer can subscribe to offers.
Each subscription is a copy of the offer subscribed at the exact moment of the subscription.
(See below Offers and Subscriptions)

Customer Resource

Property Description Type
Id Id of the Customer Object Integer
ReferenceCustomer Shared Key of the Customer between ProAbono and your application String
Name Display Name of the Customer String
Email Email of the Customer String
StateLife State of the Customer StateLifeCycle
Language Language of your customer String Language
Links Useful links concerning the Customer See below.

See Object Convention

Collection of links

Rel Description
related-settings-payment All about the Payment Settings of the Customer. See CustomerPaymentSettings.
related-address-billing Billing Address of the Customer. See Address.
related-address-shipping Shipping Address of the Customer. See Address.
collection-subscription All Subscriptions of the Customer. See Subscriptions.
collection-invoicedebit All Invoices of the Customer. See Invoices.
collection-invoicecredit All Credit Notes of the Customer. See Invoices.
collection-balance Balance of the Customer (if IsNotBilled is true, only what is NOT billed yet can be seen). See CustomerBalance.
hosted-collection-offers Unique encrypted link to the page which contains all visible offers available for the concerned Customer.
hosted-collection-subscription Unique encrypted link to the page which contains all subscriptions of the concerned Customer.
hosted-register Unique encrypted link for the concerned Customer to directly type/update his/her payment information.

Create a Customer

Definition
POST https://{your-domain}.via.proabono.com/Distribution/Customers
Example Request
POST https://sandbox-eur.via.proabono.com/Distribution/Customers
{
    "ReferenceCustomer": "ab83c0de-cc96-4cd5-996b-d6dac962901d",
    "Name": "John Doe",
    "Email": "john@doe.com",
    "Language": "en",
    "Metadata":
        {
            "Gender":"Male",
            "Incomes": 150000,
            "Kids": 3
        }
}
Example Response
{
    "Id": 64854,
    "DateUpdate": "2015-04-22T17:54:03.92Z",
    "IdUserUpdate": 69719,
    "IdSegment": 3,
    "IdUserCreation": 69719,
    "DateCreation": "2015-04-22T17:54:03.92Z",
    "StateLife": "Ok",
    "IdBusiness": 2,
    "ReferenceCustomer": "ab83c0de-cc96-4cd5-996b-d6dac962901d",
    "Name": "John Doe",
    "Email": "john@doe.com",
    "Language": "en",
    "Metadata":
        {
            "Gender":"Male",
            "Incomes": 150000,
            "Kids": 3
        },
    "Links": [
        {
            "rel": "self",
            "href": "/Distribution/Customers/152868"
        },
        {
            "rel": "related-address-billing",
            "href": "/Distribution/Customers/152867/AddressBilling"
        },
        {
            "rel": "related-address-shipping",
            "href": "/Distribution/Customers/152867/AddressShipping"
        },
        {
            "rel": "related-address-billing",
            "href": "/Distribution/Customers/64854/AddressBilling"
        },
        {
            "rel": "related-address-shipping",
            "href": "/Distribution/Customers/64854/AddressShipping"
        },
        {
            "rel": "collection-subscription",
            "href": "/Sub/Subscriptions?IdCustomerOrBuyer=64854"
        },
        {
            "rel": "collection-invoicedebit",
            "href": "/Finance/InvoiceDebits?idCustomer=64854"
        },
        {
            "rel": "collection-invoicecredit",
            "href": "/Finance/InvoiceCredits?idCustomer=64854"
        },
        {
            "rel": "collection-balance",
            "href": "/Finance/CustomerMoves?idCustomer=64854&IsNotBilled=true"
        },
        {
            "rel": "hosted-collection-offers",
            "href": "https://sandbox-eur.proabono.com/offers/{Unique-Encrypted-Url-1}"
        },
        {
            "rel": "hosted-register",
            "href": "https://sandbox-eur.proabono.com/permission-update/{Unique-Encrypted-Url-2}"
        },
        {
            "rel": "hosted-collection-subscription",
            "href": "https://sandbox-eur.proabono.com/subscriptions/{Unique-Encrypted-Url-3}"
        }       
    ]
}

Create/Declare a customer in ProAbono.

Request Parameters

Parameter Required? Description Type
Email Yes Email of your customer Integer
Name No Display Name of your customer String
ReferenceCustomer No Reference of your customer shared with your application and ProAbono.
(Use your own id/reference user)
String
Language No Language of your customer (By Default, ProAbono will use the language of the segment.) String Language
Metadata No A set of key/value pairs that you can add to a customer. Useful for storing additional information about the customer in a structured format. Metadata

Returns

Retrieve a Customer

Definition
GET https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Distribution/Customers/152867
Example Response
{
    "Id": 64854,
    "DateUpdate": "2015-08-19T09:09:33.93Z",
    "IdUserUpdate": 128,
    "IdSegment": 3,
    "IdUserCreation": 128,
    "DateCreation": "2015-08-19T09:09:33.93Z",
    "StateLife": "Ok",
    "IdBusiness": 2,
    "ReferenceCustomer": "c2f548b5-91bd-4394-83b0-d76c42620774",
    "Name": "John Doe",
    "Email": "john@doe.com",
    "Language": "en",
    "Links": [
        {
            "rel": "related-settings-payment",
            "href": "/Distribution/Customers/64854/SettingsPayment"
        },
        {
            "rel": "related-address-billing",
            "href": "/Distribution/Customers/64854/AddressBilling"
        },
        {
            "rel": "related-address-shipping",
            "href": "/Distribution/Customers/64854/AddressShipping"
        },
        {
            "rel": "collection-subscription",
            "href": "/Sub/Subscriptions?IdCustomerOrBuyer=64854"
        },
        {
            "rel": "collection-invoicedebit",
            "href": "/Finance/InvoiceDebits?idCustomer=64854"
        },
        {
            "rel": "collection-invoicecredit",
            "href": "/Finance/InvoiceCredits?idCustomer=64854"
        },
        {
            "rel": "collection-balance",
            "href": "/Finance/CustomerMoves?idCustomer=64854&IsNotBilled=true"
        },
        {
            "rel": "hosted-collection-offers",
            "href": "https://sandbox-eur.proabono.com/offers/{Unique-Encrypted-Url-1}"
        },
        {
            "rel": "hosted-register",
            "href": "https://sandbox-eur.proabono.com/permission-update/{Unique-Encrypted-Url-2}"
        },
        {
            "rel": "hosted-collection-subscription",
            "href": "https://sandbox-eur.proabono.com/subscriptions/{Unique-Encrypted-Url-3}"
        }
    ]
}

Retrieve a Customer by id

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the Customer to be retrieved. Integer

Returns

Update a Customer

Definition
PUT https://{your-domain}.via.proabono.com/Distribution/Customers/
Example Request
PUT https://sandbox-eur.via.proabono.com/Distribution/Customers/
{
    "Id": 152867,
    "StateLife": "Ok",
    "ReferenceCustomer": "ab83c0de-cc96-4cd5-996b-d6dac962901d",
    "Name": "John Doe Senior",
    "Email": "john-sr@doe.com",
    "Language": "fr"
}

Update your Customer’s email, name, language and its Reference

Request Parameters

Parameter Required? Description Type
Id Yes Id of the Customer Integer
StateLife Yes State of the customer String StateLife
Email Yes Email of your customer Integer
Name Yes Display Name of your customer String
ReferenceCustomer Yes Reference of your customer shared with your application and ProAbono String
Language Yes Language of your customer String Language

Returns

Delete a Customer

Definition
DELETE https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}
Example Request
DELETE https://sandbox-eur.via.proabono.com/Distribution/Customers/123456

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the customer to be deleted. Integer

Returns

Retrieve Customer Payment Settings

Definition
GET https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}/SettingsPayment
Example Request
GET https://sandbox-eur.via.proabono.com/Distribution/Customers/152867/SettingsPayment
Example Response
{
    "Id": 152867,
    "DateUpdate": "2015-09-13T21:31:17.42Z",
    "IdUserUpdate": 1260,
    "IdCustomer": 152867,
    "DateNextBilling": "2016-04-16T17:04:14.26Z",
    "TypePayment": "Card",
    "IdGatewayPermission": 135,
    "Links": [
        {
            "rel": "related-customer",
            "href": "/Distribution/Customers/152867"
        },
        {
            "rel": "related-gatewaypermission",
            "href": "/Gateway/GatewayPermissions/135"
        }
    ]   
}

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the customer. Integer

Returns

Update Customer Payment Settings

Definition
PUT https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}/SettingsPayment
Example Request
PUT https://sandbox-eur.via.proabono.com/Distribution/Customers/152867/SettingsPayment
{
    "DateNextBilling": "2016-04-16T17:04:14.26Z",
    "TypePayment": "Card",
    "IdGatewayPermission": 135
}

Update the Date of the Next Billing of the Customer, the GatewayPermission of the Customer (Footprint of a bankcard, mandate…).

Request Parameters

Parameter Required? Description Type
Id Yes Id of the Customer Integer
DateNextBilling Yes Date of the Next Billing of the Customer Datetime
TypePayment Yes Type of payment TypePayment
IdGatewayPermission Yes Id of the GatewayPermission Integer

Returns

Retrieve Customer Billing Address

Definition
GET https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}/AddressBilling
Example Request
GET https://sandbox-eur.via.proabono.com/Distribution/Customers/123456/AddressBilling
Example Response
{
    "Id": 123456,
    "DateUpdate": "2015-04-24T14:25:14.62Z",
    "IdUserUpdate": 69719,
    "IdCustomer": 123456,
    "Company": "Sandbox SAS",
    "FirstName": "John",
    "LastName": "Doe",
    "AddressLine1": "100 avenue des Champs Elysees",
    "AddressLine2": "1st Floor",
    "ZipCode": "75008",
    "City": "Paris",
    "Country": "FR",
    "Region": "FR-75",
    "TaxInformation": "FR 1234567890",
    "Phone" : "+33 1 234 456 789",
    "Links": [
        {
            "rel": "related-customer",
            "href": "/Distribution/Customers/123456"
        }
    ]   
}

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the customer. Integer

Returns

Update Customer Billing Address

Definition
PUT https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}/AddressBilling
Example Request
PUT https://sandbox-eur.via.proabono.com/Distribution/Customers/123456/AddressBilling
{
    "Company": "Sandbox SAS",
    "FirstName": "John",
    "LastName": "Doe",
    "AddressLine1": "100 avenue des Champs Elysees",
    "AddressLine2": "1st Floor",
    "ZipCode": "75008",
    "City": "Paris",
    "Country": "FR",
    "Region": "FR-75",
    "TaxInformation": "FR1234567890",
    "Phone" : "+33 1 234 456 789"
}

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the customer. Integer

Returns

Retrieve Customer Shipping Address

Definition
GET https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}/AddressShipping
Example Request
GET https://sandbox-eur.via.proabono.com/Distribution/Customers/123456/AddressShipping
Example Response
{
    "Id": 123456,
    "DateUpdate": "2015-04-24T14:25:14.62Z",
    "IdUserUpdate": 69719,
    "IdCustomer": 123456,
    "Company": "Sandbox SAS",
    "FirstName": "John",
    "LastName": "Doe",
    "AddressLine1": "100 avenue des Champs Elysees",
    "AddressLine2": "1st Floor",
    "ZipCode": "75008",
    "City": "Paris",
    "Country": "FR",
    "Region": "FR-75",
    "TaxInformation": "FR 1234567890",
    "Phone" : "+33 1 234 456 789",
    "Links": [
        {
            "rel": "related-customer",
            "href": "/Distribution/Customers/123456"
        }
    ]   
}

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the customer. Integer

 

Returns

 

Update Customer Shipping Address

Definition
PUT https://{your-domain}.via.proabono.com/Distribution/Customers/{Id}/AddressShipping
Example Request
PUT https://sandbox-eur.via.proabono.com/Distribution/Customers/123456/AddressShipping
{
    "Company": "Sandbox SAS",
    "FirstName": "John",
    "LastName": "Doe",
    "AddressLine1": "100 avenue des Champs Elysees",
    "AddressLine2": "1st Floor",
    "ZipCode": "75008",
    "City": "Paris",
    "Country": "FR",
    "Region": "FR-75",
    "TaxInformation": "FR 1234567890",
    "Phone" : "+33 1 234 456 789"
}

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the customer. Integer

Returns

 

List Customers

Definition
GET https://{your-domain}.via.proabono.com/Distribution/Customers/
Example Request
GET https://sandbox-eur.via.proabono.com/Distribution/Customers/
Example Response
{
  "Page": 1,
  "SizePage": 25,
  "Count": 3,
  "TotalItems": 3,
  "DateGenerated": "2015-04-24T09:34:18.46Z",
  "Items": [
    {
      "Id": 205708,
      "DateUpdate": "2015-04-16T16:04:14.26Z",
      "IdUserUpdate": 69719,
      "IdSegment": 44,
      "IdUserCreation": 69719,
      "DateCreation": "2015-04-16T16:04:14.26Z",
      "StateLife": "Ok",
      "IdBusiness": 44,
      "ReferenceCustomer": "d0845e9e-1e3b-4b4a-a832-d624bbbce1e2",
      "Name": "Mickael Douglas",
      "Email": "mickael@douglas.com",
      "Language": "en",
      "Links": [
        {
          "rel": "self",
          "href": "/Distribution/Customers/205708"
        },
        {
          "rel": "related-address-billing",
          "href": "/Distribution/Customers/205708/AddressBilling"
        },
        {
          "rel": "related-address-shipping",
          "href": "/Distribution/Customers/205708/AddressShipping"
        }
      ]
    },
    {
      "Id": 205707,
      "DateUpdate": "2015-04-16T16:04:14.29Z",
      "IdUserUpdate": 69719,
      "IdSegment": 44,
      "IdUserCreation": 69719,
      "DateCreation": "2015-04-16T16:04:14.29Z",
      "StateLife": "Ok",
      "IdBusiness": 44,
      "ReferenceCustomer": "8082ab5b-345d-44a1-b0a4-ce0683a7eca3",
      "Name": "Mickael Jackson",
      "Email": "mickael.jackson@heaven.com",
      "Language": "en",
      "Links": [
        {
          "rel": "self",
          "href": "/Distribution/Customers/205707"
        },
        {
          "rel": "related-address-billing",
          "href": "/Distribution/Customers/205707/AddressBilling"
        },
        {
          "rel": "related-address-shipping",
          "href": "/Distribution/Customers/205707/AddressShipping"
        }
      ]
    },
    {
      "Id": 205704,
      "DateUpdate": "2015-04-16T11:26:28.61Z",
      "IdUserUpdate": 69719,
      "IdSegment": 44,
      "IdUserCreation": 69719,
      "DateCreation": "2015-04-16T11:26:28.61Z",
      "StateLife": "Ok",
      "IdBusiness": 44,
      "ReferenceCustomer": "ceb139b8-9fbb-4739-b498-593767f0ef5f",
      "Name": "Diana Ross",
      "Email": "diana@ross.com",
      "Language": "en",
      "Links": [
        {
          "rel": "self",
          "href": "/Distribution/Customers/205704"
        },
        {
          "rel": "related-address-billing",
          "href": "/Distribution/Customers/205704/AddressBilling"
        },
        {
          "rel": "related-address-shipping",
          "href": "/Distribution/Customers/205704/AddressShipping"
        }
      ]
    }
  ]
}

Get the collection of Customers (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateCreationMin List all Customers created after the date Datetime
DateCreationMax List all Customers created before the date Datetime
DateUpdateMin List all Customers update after the date Datetime
DateUpdateMax List all Customers updated before the date Datetime
ReferenceCustomer List of 1 Customer if the reference is related to a known Customer String
Email List all Customers related to the same Email Address String
Name List all Customers related to the same Name or a portion of the Name String
Language List all Customers declared with a specific language Language
IdBusiness List all Customers related to the same Business Integer
StateLife List all Customers with a specific StateLife StateLifeCycle
IsBillable If True, List all Customers with valid payment info Boolean

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Distribution/Customers/?StateLife=Ok&Language=EN&DateCreationMin=2015-07-27T13:54:00

Returns

API Backoffice - Offers

Offer describes what AND how you want to sell.

Offer Resource

Property Description Type
Id Id of the Offer Object Integer
Name Name of the Offer String
ReferenceOffer Shared Key of the Offer between ProAbono and your application (Often used for accounting purposes) String
IsVisible Visibility of the offer in the hosted pages Boolean
Order Define the position of the Offer among all Offers when displayed in the hosted Offer Pages Integer
AmountUpFront Amount of the Upfront fee, Setup fee or Initial fee of your offer in cents Integer
AmountTrial Amount of the Trial period in cents Integer
DurationTrial Number of Trial Time Unit Integer
UnitTrial Time Unit of Trial TimeUnit
AmountRecurrence Amount of each recurrence in cents Integer
DurationRecurrence Number of Recurrence Time Unit Integer
UnitRecurrence Time Unit of Recurrence TimeUnit
CountRecurrences Number of Recurrences Integer
CountMinRecurrences Minimum recurrences the customer will be committed to pay Integer
AmountTermination Amount of the Termination Fee in cents Integer
StateLife State of the Offer StateLifeCycle
Links Useful links concerning the Offer See below.

Note : Amounts are set without currency because currency is set at the Segment Level.

See Object Convention

Collection of links

Rel Description
collection-offerfeature Collection of OfferFeatures related to the Subscription. See OfferFeature.
collection-subscription Collection of Subscriptions related to the Offer. See Subscription.
related-simulation See Compute an Offer Pricing.
hosted-subscribe Link to the page where the Customer should be redirect to subscribe.

Create an Offer

Definition
POST https://{your-domain}.via.proabono.com/Sub/Offers
Example Request
POST https://sandbox-eur.via.proabono.com/Sub/Offers
{
  "Name": "Premium",
  "DurationTrial":30,
  "UnitTrial":"Day",
  "AmountRecurrence": 99,
  "DurationRecurrence": 1,
  "UnitRecurrence": "Month"
}
Example Response
{
    "Id": 2831,
    "IdSegment": 44,
    "DateUpdate": "2015-04-27T13:18:22.29Z",
    "IdUserUpdate": 69719,
    "DateCreation": "2015-04-27T13:18:22.29Z",
    "IdUserCreation": 69719,
    "StateLife": "Ok",
    "ReferenceOffer": "665ab615-f323-4edf-a047-990b8f7873ae",
    "Name": "Premium",
    "Order": 1,
    "IsVisible": true,
    "DurationTrial": 30,
    "UnitTrial": "Day",
    "AmountRecurrence": 99,
    "DurationRecurrence": 1,
    "UnitRecurrence": "Month",
    "Features": [],
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/Offers/2831"
        },
        {
            "rel": "collection-offerfeature",
            "href": "/Sub/OfferFeatures?idOffer=2831"
        },
        {
            "rel": "collection-subscription",
            "href": "/Sub/Subscriptions?idOffer=2831"
        },
        {
            "rel": "related-simulation",
            "href": "/Sub/Offers/2831/Simulation"
        },
        {
            "rel": "hosted-subscribe",
            "href": "https://sandbox-eur.proabono.com/subscribe?refo=665ab615-f323-4edf-a047-990b8f7873ae"
        }
    ]
}

Create/Declare an offer in ProAbono.

Request Parameters

Parameter Required? Description Type
Name No Name of the Offer String
ReferenceOffer No Shared Key of the Offer between ProAbono and your application (Often used for accounting purposes) String
IsVisible No Visibility of the offer in the hosted pages Boolean
Order No Define the position of the Offer among all Offers when displayed in the hosted Offer Pages. By Default, it sets at the last position. Integer
AmountUpFront No Amount of the Upfront fee, Setup fee or Initial fee of your offer in cents Integer
AmountTrial No Amount of the Trial period in cents Integer
DurationTrial No Number of Trial Time Unit Integer
UnitTrial No Time Unit of Trial TimeUnit
AmountRecurrence Yes Amount of each recurrence in cents Integer
DurationRecurrence Yes Number of Recurrence Time Unit Integer
UnitRecurrence Yes Time Unit of Recurrence TimeUnit
CountRecurrences No Number of Recurrences Integer
CountMinRecurrences No Minimum recurrences the customer will be committed to pay Integer
AmountTermination No Amount of the Termination Fee in cents Integer

Returns

Retrieve an Offer

Definition
GET https://{your-domain}.via.proabono.com/Sub/Offers/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/Offers/152867
Example Response
{
    "Id": 2831,
    "IdSegment": 44,
    "DateUpdate": "2015-04-27T13:18:22.29Z",
    "IdUserUpdate": 69719,
    "DateCreation": "2015-04-27T13:18:22.29Z",
    "IdUserCreation": 69719,
    "StateLife": "Ok",
    "ReferenceOffer": "665ab615-f323-4edf-a047-990b8f7873ae",
    "Name": "Premium",
    "Order": 1, 
    "IsVisible": true,
    "DurationTrial": 30,
    "UnitTrial": "Day",
    "AmountRecurrence": 99,
    "DurationRecurrence": 1,
    "UnitRecurrence": "Month",
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/Offers/2831"
        },
        {
            "rel": "collection-offerfeature",
            "href": "/Sub/OfferFeatures?idOffer=2831"
        },
        {
            "rel": "collection-subscription",
            "href": "/Sub/Subscriptions?idOffer=2831"
        },
        {
            "rel": "related-simulation",
            "href": "/Sub/Offers/2831/Simulation"
        },
        {
            "rel": "hosted-subscribe",
            "href": "https://sandbox-eur.proabono.com/subscribe?refo=665ab615-f323-4edf-a047-990b8f7873ae"
        }
    ]
}

Retrieve an Offer by id

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the offer to be retrieved. Integer

Returns

Update an Offer

Definition
PUT https://{your-domain}.via.proabono.com/Sub/Offers/{Id}
Example Request
PUT https://sandbox-eur.via.proabono.com/Sub/Offers/2831
{
    "Name": "Premium Pro",
    "ReferenceOffer": "premium-pro",
    "Order": 1, 
    "StateLife": "Ok",
    "DurationTrial": 3,
    "UnitTrial": "Month",
    "AmountRecurrence": 199,
    "DurationRecurrence": 1,
    "UnitRecurrence": "Month"
}

Update your Offer as you want

Request Parameters

Parameter Required? Description Type
Id Yes Id of the Offer Integer
Name Yes Name of the Offer String
ReferenceOffer Yes Shared Key of the Offer between ProAbono and your application (Often used for accounting purposes) String
IsVisible Yes Visibility of the offer in the hosted pages Boolean
Order Yes Define the position of the Offer among all Offers when displayed in the hosted Offer Pages Integer
StateLife Yes State of the Offer StateLifeCycle
AmountUpFront No Amount of the Upfront fee, Setup fee or Initial fee of your offer in cents Integer
AmountTrial No Amount of the Trial period in cents Integer
DurationTrial No Number of Trial Time Unit Integer
UnitTrial No Time Unit of Trial TimeUnit
AmountRecurrence Yes Amount of each recurrence in cents Integer
DurationRecurrence Yes Number of Recurrence Time Unit Integer
UnitRecurrence Yes Time Unit of Recurrence TimeUnit
CountRecurrences No Number of Recurrences Integer
CountMinRecurrences No Minimum recurrences the customer will be committed to pay Integer
AmountTermination No Amount of the Termination Fee in cents Integer

Returns

Compute an Offer Pricing

Definition
GET https://{your-domain}.via.proabono.com/Sub/Offers/{IdOffer}/Simulation?IdCustomer={Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/Offers/152867/Simulation?IdCustomer=123456
Example Response 1 - Offer with free trial
{
    "DateGeneration": "2015-09-11T09:32:04.66Z",
    "AmountSubtotal": 0,
    "AmountTotalDue": 0,
    "Details": [
        {
            "TypeMove": "SubscriptionInitialFee",
            "Label": "Trial amount",
            "AmountSubtotal": 0,
            "AmountTotalDue": 0
        }
    ],
    "NextTerm": {
        "AmountSubtotal": 9900,
        "AmountTotalDue": 11632,
        "Details": [
            {
                "TypeMove": "SubscriptionRecurringAmount",
                "Label": "Subscription amount",
                "AmountSubtotal": 9900,
                "AmountTotalDue": 11632,
                "Tax1": {
                    "IdTaxProfile": 252,
                    "Label": "Tax1",
                    "Rate": 1000,
                    "Amount": 990,
                    "Type": "Standard"
                },
                "Tax2": {
                    "IdTaxProfile": 253,
                    "Label": "Tax2",
                    "Rate": 750,
                    "Amount": 742,
                    "Type": "Standard"
                }
            }
        ]
    }
}
Example Response 2 - Offer with paying features
{
    "DateGeneration": "2015-09-11T14:00:35.52Z",
    "AmountSubtotal": 17200,
    "AmountTotalDue": 20209,
    "Details": [
        {
            "TypeMove": "SubscriptionInitialFee",
            "Label": "Up-front amount",
            "AmountSubtotal": 4900,
            "AmountTotalDue": 5757,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 490,
                "Type": "Standard"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 367,
                "Type": "Standard"
            }
        },
        {
            "TypeMove": "SubscriptionRecurringAmount",
            "Label": "Subscription amount",
            "AmountSubtotal": 9900,
            "AmountTotalDue": 11632,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 990,
                "Type": "Standard"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 742,
                "Type": "Standard"
            }
        },
        {
            "IdFeature": 239,
            "TypeMove": "SubscriptionFeatures",
            "Label": "Module A",
            "AmountSubtotal": 1000,
            "AmountTotalDue": 1175,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 100,
                "Type": "Standard"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 75,
                "Type": "Standard"
            }
        },
        {
            "IdFeature": 238,
            "TypeMove": "SubscriptionFeatures",
            "Label": "Users",
            "AmountSubtotal": 1400,
            "AmountTotalDue": 1645,
            "QuantityReal": 3,
            "QuantityBilled": 3,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 140,
                "Type": "Standard"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 105,
                "Type": "Standard"
            }
        }
    ]
}

Compute a pricing estimation based on an Offer and a Customer. ProAbono also applies Taxes if necessary.

Request Parameters

Parameter Required? Description Type
IdOffer Yes The identifier of the Offer to evaluated. Integer
Id Yes The identifier of the Customer for whom the Offer is evaluated. Integer

Example 1 - Offer with free trial

Example 2 - Offer with paying features

Returns

Structure of the Global Answer of the Computation

Parameter Required? Description Type
DateGeneration Yes Date of the Computation Datetime
AmountSubtotal Yes Total Amount in cents without Taxes for the first Term Integer
AmountTotalDue Yes Total Amount in cents with Taxes for the first Term Integer
Details Yes Collection of Details of the Offer for the first Term EvaluatedOfferDetails - See below
NextTerm No Evaluation of the next Term See below

Structure of NextTerm

Parameter Required? Description Type
AmountSubtotal Yes Total Amount in cents without Taxes for Next Term Integer
AmountTotalDue Yes Total Amount in cents with Taxes for the Next Term Integer
Details Yes Collection of Details of the Offer for the Next Term EvaluatedOfferDetails - See below

Structure of a EvaluatedOfferDetails

Parameter Required? Description Type
IdFeature Yes if the OfferDetail is related to a Feature Id of the Feature linked to the OfferDetail. Integer
TypeMove Yes Type of CustomerMove TypeMove
Label Yes Label of the Detail of the Offer String
AmountSubtotal Yes Amount in cents without Taxes Integer
AmountTotalDue Yes Amount in cents with Taxes Integer
QuantityReal Yes if the OfferDetail is related to a Feature with type Limitation or Consumption Quantity of the Feature available for the Customer Integer
QuantityBilled Yes if the OfferDetail is related to a Feature with type Limitation or Consumption Quantity of the Feature billed to the Customer Integer
Tax1 No Details of Tax1 applied for the concerned Customer EvaluatedOfferDetailsTax - See below
Tax2 No Details of Tax2 applied for the concerned Customer EvaluatedOfferDetailsTax - See below

Structure of a EvaluatedOfferDetailsTax

Parameter Required? Description Type
IdTaxProfile Yes Id of the Tax Profile Integer
Label Yes Label of the Tax String
Rate Yes Rate of the Tax applied in ‱. Ex 15,6% -> 1560. Integer
Amount Yes Tax Amount in cents calculated base on the rate of Tax Integer
Type Yes Type of Tax TypeTax

Delete an Offer

Definition
DELETE https://{your-domain}.via.proabono.com/Sub/Offers/{Id}
Example Request
DELETE https://sandbox-eur.via.proabono.com/Sub/Offers/2831

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the offer to be deleted. Integer

Returns

List Offers

Definition
GET https://{your-domain}.via.proabono.com/Sub/Offers/
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/Offers/?SizePage=3
Example Response
{
    "Page": 1,
    "SizePage": 3,
    "Count": 3,
    "TotalItems": 15,
    "DateGenerated": "2015-04-27T13:54:26.72Z",
    "Items": [
        {
            "Id": 2836,
            "IdSegment": 44,
            "DateUpdate": "2015-04-27T13:54:01.27Z",
            "IdUserUpdate": 69719,
            "DateCreation": "2015-04-27T13:54:01.27Z",
            "IdUserCreation": 69719,
            "StateLife": "Ok",
            "ReferenceOffer": "premium",
            "Name": "Premium",
            "Order": 2,         
            "IsVisible": true,
            "AmountUpFront": 1990,
            "AmountRecurrence": 890,
            "DurationRecurrence": 3,
            "UnitRecurrence": "Month",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/Offers/2836"
                }
            ]
        },
        {
            "Id": 2835,
            "IdSegment": 44,
            "DateUpdate": "2015-04-27T13:53:06.17Z",
            "IdUserUpdate": 69719,
            "DateCreation": "2015-04-27T13:53:06.17Z",
            "IdUserCreation": 69719,
            "StateLife": "Ok",
            "ReferenceOffer": "premium-pro",
            "Name": "Premium Pro",
            "Order": 3,         
            "IsVisible": true,
            "AmountUpFront": 990,
            "AmountRecurrence": 199,
            "DurationRecurrence": 1,
            "UnitRecurrence": "Month",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/Offers/2835"
                }
            ]
        },
        {
            "Id": 2834,
            "IdSegment": 44,
            "DateUpdate": "2015-04-27T13:51:58.67Z",
            "IdUserUpdate": 69719,
            "DateCreation": "2015-04-27T13:51:58.67Z",
            "IdUserCreation": 69719,
            "StateLife": "Ok",
            "ReferenceOffer": "starter",
            "Name": "Starter",
            "Order": 1,
            "IsVisible": true,
            "DurationTrial": 10,
            "UnitTrial": "Day",
            "AmountRecurrence": 49,
            "DurationRecurrence": 1,
            "UnitRecurrence": "Month",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/Offers/2834"
                }
            ]
        }
    ],
    "Links": [
        {
            "rel": "next",
            "href": "/Sub/Offers/?SizePage=3&page=2"
        }
    ]
}

Get the collection of Offers (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateCreationMin List all Offers created after the date Datetime
DateCreationMax List all Offers created before the date Datetime
DateUpdateMin List all Offers update after the date Datetime
DateUpdateMax List all Offers updated before the date Datetime
ReferenceOffer List of 1 Offer if the reference is related to a known Offer String
IsVisible List all Offers with a specific IsVisible Boolean
Name List all Offers related to the same Name or a portion of the Name String
IdBusiness List all Offers related to the same Business Integer
StateLife List all Offers with a specific StateLife StateLifeCycle

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Sub/Offers/?StateLife=Ok&IsVisible=true&DateUpdateMin=2015-04-27T13:54:00

Returns

Add a Feature to an Offer

Definition
POST https://{your-domain}.via.proabono.com/Sub/OfferFeatures
Example Request
POST https://sandbox-eur.via.proabono.com/Sub/OfferFeatures
{
    "IdOffer": 2958,
    "IdFeature": 1031
}
Example Response
{
    "Id": 3550,
    "IdSegment": 44,
    "DateUpdate": "2015-05-13T23:52:33.20Z",
    "IdUserUpdate": 69719,
    "IdOffer": 2958,
    "IdFeature": 1031,
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/OfferFeatures/3550"
        },
        {
            "rel": "related-offer",
            "href": "/Sub/Offers/2958"
        }
    ]
}

Declare/Group/Link a feature to an offer in ProAbono.  

Request Parameters

Parameter Required? Description Type
IdOffer Yes Id of the Offer Integer
IdFeature Yes Id of the Feature Integer
QuantityIncluded Quantity of the Feature Integer

API Backoffice - Features

Features stand for Features of your Offers and Site/Service/Application.

Feature Resource

Property Description Type
Id Id of the Feature Object Integer
ReferenceFeature Shared Key of the Feature between ProAbono and your application String
Name Name of the Feature String
TypeFeature Type of the Feature (OnOff, Limitation, Consumption) TypeFeature
IsVisible Visibility of the Feature in offers and hosted pages Boolean
Order Define the position of the Feature among all Features when displayed in offers and hosted pages Integer
StateLife State of the Feature StateLifeCycle
Links Useful links concerning the Feature -

See Object Convention

Create a Feature

Definition
POST https://{your-domain}.via.proabono.com/Organization/Features
Example Request
POST https://sandbox-eur.via.proabono.com/Organization/Features
{
    "ReferenceFeature": "users",
    "Name": "Active Users",
    "TypeFeature": "Limitation",
    "IsVisible": true,
    "Order": 5
}
Example Response
{
    "Id": 152867,
    "DateUpdate": "2015-04-22T18:56:03.92Z",
    "IdUserUpdate": 69719,
    "IdUserCreation": 69719,
    "DateCreation": "2015-04-22T18:56:03.92Z",
    "StateLife": "Ok",
    "IdBusiness": 44,
    "ReferenceFeature": "users",
    "Name": "Active Users",
    "Order": 5, 
    "IsVisible": true,
    "TypeFeature": "Limitation",    
    "Links": [
        {
            "rel": "self",
            "href": "/Organization/Features/152868"
        }
    ]
}

Create/Declare a feature in ProAbono.

Request Parameters

Parameter Required? Description Type
Name Yes Name of the Feature String
ReferenceFeature No Reference of the Feature shared with your application and ProAbono. String
TypeFeature Yes Type of the Feature (OnOff, Limitation, Consumption) TypeFeature
Order No Define the position of the Feature among all Features when displayed in offers and hosted pages. By Default, it sets at the last position. Integer
IsVisible No Visibility of the Feature in offers and hosted pages. By Default, it sets to true. Boolean

Returns

Retrieve a Feature

Definition
GET https://{your-domain}.via.proabono.com/Organization/Features/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Organization/Features/152867
Example Response
{
    "Id": 152867,
    "DateUpdate": "2015-04-22T17:54:03.92Z",
    "IdUserUpdate": 69719,
    "IdUserCreation": 69719,
    "DateCreation": "2015-04-22T17:54:03.92Z",
    "StateLife": "Ok",
    "IdBusiness": 44,
    "ReferenceFeature": "ab83c0de-cc96-4cd5-996b-d6dac962901d",
    "Name": "Active Users",
    "Order": 5, 
    "IsVisible": true,
    "TypeFeature": "Limitation",    
    "Links": [
        {
            "rel": "self",
            "href": "/Organization/Features/152868"
        }
    ]
}

Get a Feature by id

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the feature to be retrieved. Integer

Returns

Update a Feature

Definition
PUT https://{your-domain}.via.proabono.com/Organization/Features/{Id}
Example Request
PUT https://sandbox-eur.via.proabono.com/Organization/Features/152867
{
    "ReferenceFeature": "authorized-users",
    "Name": "Authorized Users",
    "IsVisible": true,
    "Order": 2, 
    "TypeFeature": "Limitation",
    "StateLife": "Ok"

}

Update your Feature’s name, visibility , order, life state and its Reference.

Request Parameters

Parameter Required? Description Type
Id Yes Id of the Feature Integer
Name Yes Name of the Feature String
ReferenceFeature No Reference of the Feature shared with your application and ProAbono. String
TypeFeature Yes Type of the Feature (OnOff, Limitation, Consumption) TypeFeature
Order Yes Define the position of the Feature among all Features when displayed in offers and hosted pages. Integer
IsVisible Yes Visibility of the Feature in offers and hosted pages. Boolean
StateLife Yes State of the Feature StateLifeCycle

Returns

Delete a Feature

Definition
DELETE https://{your-domain}.via.proabono.com/Organization/Features/{Id}
Example Request
DELETE https://sandbox-eur.via.proabono.com/Organization/Features/152867

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the feature to be deleted. Integer

Returns

List Features

Definition
GET https://{your-domain}.via.proabono.com/Organization/Features/
Example Request
GET https://sandbox-eur.via.proabono.com/Organization/Features/
Example Response
{
  "Page": 1,
  "SizePage": 25,
  "Count": 3,
  "TotalItems": 3,
  "DateGenerated": "2015-04-24T09:34:18.46Z",
  "Items": [
    {
      "Id": 205708,
      "DateUpdate": "2015-04-16T16:04:14.26Z",
      "IdUserUpdate": 69719,
      "IdUserCreation": 69719,
      "DateCreation": "2015-04-16T16:04:14.26Z",
      "StateLife": "Ok",
      "IdBusiness": 44,
      "ReferenceFeature": "authorized-users"
      "Name": "Authorized Users",
      "Order": 2,
      "IsVisible": true,
      "TypeFeature": "Limitation",      
      "Links": [
        {
          "rel": "self",
          "href": "/Organization/Features/205708"
        }
      ]
    },
    {
      "Id": 205707,
      "DateUpdate": "2015-04-16T16:04:14.29Z",
      "IdUserUpdate": 69719,
      "IdUserCreation": 69719,
      "DateCreation": "2015-04-16T16:04:14.29Z",
      "StateLife": "Ok",
      "IdBusiness": 44,
      "ReferenceFeature": "8082ab5b-345d-44a1-b0a4-ce0683a7eca3",
      "Name": "Export Statistics",
      "Order": 1,      
      "IsVisible": false,
      "TypeFeature": "OnOff",        
      "Links": [
        {
          "rel": "self",
          "href": "/Organization/Features/205707"
        }
      ]
    },
    {
      "Id": 205704,
      "DateUpdate": "2015-04-16T11:26:28.61Z",
      "IdUserUpdate": 69719,
      "IdUserCreation": 69719,
      "DateCreation": "2015-04-16T11:26:28.61Z",
      "StateLife": "Ok",
      "IdBusiness": 44,
      "ReferenceFeature": "ceb139b8-9fbb-4739-b498-593767f0ef5f",
      "Name": "Notifications",
      "Order": 3,
      "IsVisible": true,
      "TypeFeature": "Consumption",
      "Links": [
        {
          "rel": "self",
          "href": "/Organization/Features/205704"
        }
      ]
    }
  ]
}

Get the collection of Features (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateCreationMin List all Features created after the date Datetime
DateCreationMax List all Features created before the date Datetime
DateUpdateMin List all Features update after the date Datetime
DateUpdateMax List all Features updated before the date Datetime
ReferenceFeature List of 1 Feature if the reference is related to a known Feature String
IsVisible List all Features with a specific IsVisible Boolean
Name List all Features related to the same Name or a portion of the Name String
IdBusiness List all Features related to the same Business Integer
StateLife List all Features with a specific StateLife StateLifeCycle

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Organization/Features/?StateLife=Ok&IsVisible=false&DateCreationMin=2015-04-27T13:54:00

Returns

API Backoffice - PricingTables

PricingTables stand for Pricing Tables, Grid Offers of your Site/Service/Application.

PricingTable Resource

Property Description Type
Id Id of the PricingTable Object Integer
ReferencePricingTable Shared Key of the PricingTable between ProAbono and your application String
Name Name of the PricingTable String
Order Define the position of the PricingTable among all PricingTables when displayed in the hosted pages Integer
IsVisible Visibility of the PricingTable in hosted pages Boolean
IsDefault Indicate if the PricingTable is displayed by default in hosted pages Boolean
Links Useful links concerning the PricingTable -

See Object Convention

Collection of links

Rel Description
collection-pricingtable-offer Collection of PricingTableOffers related to the PricingTable. See PricingTable Offers.
collection-offer Collection of Offers related to the PricingTable. (Only visible if there is any SubscriptionPeriods.) See Offers.
hosted-subscribe Direct link to display the PricingTable with its offers

Create a PricingTable

Definition
POST https://{your-domain}.via.proabono.com/Sub/PricingTables
Example Request
POST https://sandbox-eur.via.proabono.com/Sub/PricingTables
{
    "ReferencePricingTable": "yearly",
    "Name": "Yearly Offers",
    "IsVisible": true,
    "Order": 2
}
Example Response
{
    "Id": 740,
    "DateUpdate": "2017-05-05T09:26:54.10Z",
    "IdUserUpdate": 42,
    "IdSegment": 3,
    "DateCreation": "2017-05-05T09:26:54.10Z",
    "IdUserCreation": 42,
    "ReferencePricingTable": "yearly",
    "Name": "Yearly Offers",
    "Order": 2,
    "IsVisible": true,
    "IsDefault": false,
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/PricingTables/740"
        },
        {
            "rel": "collection-pricingtable-offer",
            "href": "/Sub/PricingTableOffers?idPricingTable=740"
        },
        {
            "rel": "collection-offer",
            "href": "/Sub/Offers?idPricingTable=740"
        },
        {
            "rel": "hosted-subscribe",
            "href": "https://sandbox-eur.proabono.com/pricing?refpt=yearly"
        }
    ]
}

Create/Declare a PricingTable in ProAbono.

Request Parameters

Parameter Required? Description Type
Name Yes Name of the PricingTable String
ReferencePricingTable No Reference of the PricingTable shared with your application and ProAbono. String
Order No Define the position of the PricingTable among all PricingTables when displayed in hosted pages. By Default, it sets at the last position. Integer
IsVisible No Visibility of the PricingTable in offers and hosted pages. By Default, it sets to false. Boolean

Returns

Retrieve a PricingTable

Definition
GET https://{your-domain}.via.proabono.com/Sub/PricingTables/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/PricingTables/740
Example Response
{
    "Id": 740,
    "DateUpdate": "2017-05-05T09:26:54.10Z",
    "IdUserUpdate": 42,
    "IdSegment": 3,
    "DateCreation": "2017-05-05T09:26:54.10Z",
    "IdUserCreation": 42,
    "ReferencePricingTable": "yearly",
    "Name": "Yearly Offers",
    "Order": 2,
    "IsVisible": true,
    "IsDefault": false,
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/PricingTables/740"
        },
        {
            "rel": "collection-pricingtable-offer",
            "href": "/Sub/PricingTableOffers?idPricingTable=740"
        },
        {
            "rel": "collection-offer",
            "href": "/Sub/Offers?idPricingTable=740"
        },
        {
            "rel": "hosted-subscribe",
            "href": "https://sandbox-eur.proabono.com/pricing?refpt=yearly"
        }
    ]
}

Get a PricingTable by id

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the PricingTable to be retrieved. Integer

Returns

Update a PricingTable

Definition
PUT https://{your-domain}.via.proabono.com/Sub/PricingTables/{Id}
Example Request
PUT https://sandbox-eur.via.proabono.com/Sub/PricingTables/740
{
    "ReferencePricingTable": "yearly-special",
    "Name": "Special Yearly Offers",
    "IsVisible": true,
    "Order": 3
}

Update your PricingTable’s name, visibility , order and its Reference.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the PricingTable to be retrieved. Integer
Name No Name of the PricingTable String
ReferencePricingTable No Reference of the PricingTable shared with your application and ProAbono. String
Order No Define the position of the PricingTable among all PricingTables when displayed in hosted pages. By Default, it sets at the last position. Integer
IsVisible No Visibility of the PricingTable in offers and hosted pages. By Default, it sets to false. Boolean

Returns

Delete a PricingTable

Definition
DELETE https://{your-domain}.via.proabono.com/Sub/PricingTables/{Id}
Example Request
DELETE https://sandbox-eur.via.proabono.com/Sub/PricingTables/740

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the PricingTable to be deleted. Integer

Returns

List PricingTables

Definition
GET https://{your-domain}.via.proabono.com/Sub/PricingTables/
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/PricingTables/
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 3,
  "TotalItems": 3,
  "DateGenerated": "2017-05-05T09:36:59.43Z",
  "Items": [
    {
      "Id": 740,
      "DateUpdate": "2017-05-05T09:26:54.10Z",
      "IdUserUpdate": 52,
      "IdSegment": 3,
      "DateCreation": "2017-05-05T09:26:54.10Z",
      "IdUserCreation": 52,
      "ReferencePricingTable": "yearly",
      "Name": "Yearly Offers",
      "Order": 2,
      "IsVisible": true,
      "IsDefault": false,
      "Links": [
        {
          "rel": "self",
          "href": "/Sub/PricingTables/740"
        }
      ]
    },
    {
      "Id": 427,
      "DateUpdate": "2016-09-23T12:30:24.21Z",
      "IdUserUpdate": 11,
      "IdSegment": 3,
      "DateCreation": "2016-09-23T12:28:59.30Z",
      "IdUserCreation": 11,
      "ReferencePricingTable": "special-table",
      "Name": "Special Offers",
      "Order": 2,
      "IsVisible": false,
      "IsDefault": false,
      "Links": [
        {
          "rel": "self",
          "href": "/Sub/PricingTables/427"
        }
      ]
    },
    {
      "Id": 2,
      "DateUpdate": "2016-09-20T09:03:16.88Z",
      "IdUserUpdate": 1,
      "IdSegment": 3,
      "DateCreation": "2016-09-20T09:03:16.88Z",
      "IdUserCreation": 1,
      "ReferencePricingTable": "default",
      "Name": "Monthly Offers",
      "Order": 1,
      "IsVisible": true,
      "IsDefault": true,
      "Links": [
        {
          "rel": "self",
          "href": "/Sub/PricingTables/2"
        }
      ]
    }
  ]
}

Get the collection of PricingTables (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateCreationMin List all PricingTables created after the date Datetime
DateCreationMax List all PricingTables created before the date Datetime
DateUpdateMin List all PricingTables update after the date Datetime
DateUpdateMax List all PricingTables updated before the date Datetime
ReferencePricingTable List of 1 PricingTable if the reference is related to a known PricingTable String
IsVisible List all PricingTables with a specific IsVisible Boolean
Name List all PricingTables related to the same Name or a portion of the Name String
IdSegment List all PricingTables related to the same Segment Integer

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Sub/PricingTables/?IsVisible=false&DateCreationMin=2017-04-27T13:54:00

Returns

API Backoffice - PricingTable Offers

A PricingTableOffer describes the relationship of Offer and a PricingTable.

PricingTableOffer Resource

Property Description Type
Id Id of the PricingTableOffer Object Integer
IdPricingTable Id of the PricingTable related to the PricingTableOffer Integer
IdOffer Id of the Offer related to the PricingTableOffer Integer
Order Define the position of the Offer among all Offers in the PricingTable when displayed in the hosted pages Integer
Links Useful links concerning the PricingTableOffer

See Object Convention

Create a PricingTableOffer

Definition
POST https://{your-domain}.via.proabono.com/Sub/PricingTableOffers
Example Request
POST https://sandbox-eur.via.proabono.com/Sub/PricingTableOffers
{
    "IdPricingTable": 2,
    "IdOffer": 2793,
    "Order": 3
}
Example Response
{
    "Id": 2364,
    "DateUpdate": "2017-04-24T09:28:57.04Z",
    "IdUserUpdate": 11,
    "IdPricingTable": 2,
    "IdOffer": 2793,
    "Order": 3,
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/PricingTableOffers/2"
        }
    ]
}

Create/Declare a PricingTableOffer in ProAbono.

Request Parameters

Parameter Required? Description Type
IdPricingTable Yes Id of the PricingTable related to the PricingTableOffer Integer
IdOffer Yes Id of the Offer related to the PricingTableOffer Integer
Order No Define the position of the Offer among all Offers in the PricingTable when displayed in hosted pages. By Default, it sets at the last position. Integer

Returns

Retrieve a PricingTableOffer

Definition
GET https://{your-domain}.via.proabono.com/Sub/PricingTableOffers/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/PricingTableOffers/2364
Example Response
{
    "Id": 2364,
    "DateUpdate": "2017-04-24T09:28:57.04Z",
    "IdUserUpdate": 11,
    "IdPricingTable": 2,
    "IdOffer": 2793,
    "Order": 3,
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/PricingTableOffers/2"
        }
    ]
}

Retrieve a PricingTableOffer by id.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the PricingTableOffer to be retrieved. Integer

Returns

Update a PricingTable Offer

Definition
PUT https://{your-domain}.via.proabono.com/Sub/PricingTableOffers/{Id}
Example Request
PUT https://sandbox-eur.via.proabono.com/Sub/PricingTableOffers/2364
{
    "IdPricingTable": 2,
    "IdOffer": 2793,
    "Order": 2
}

Update your PricingTableOffer as you want.

Request Parameters

Parameter Required? Description Type
Id Yes Id of the PricingTableOffer Integer
IdPricingTable No Id of the PricingTable related to the PricingTableOffer Integer
IdOffer No Id of the Offer related to the PricingTableOffer Integer
Order No Define the position of the Offer among all Offers in the PricingTable when displayed in hosted pages. By Default, it sets at the last position. Integer

Returns

Delete a PricingTableOffer

Definition
DELETE https://{your-domain}.via.proabono.com/Sub/PricingTableOffers/{Id}
Example Request
DELETE https://sandbox-eur.via.proabono.com/Sub/PricingTableOffers/2364

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the PricingTableOffer to be deleted. Integer

Returns

List PricingTableOffers

Definition
GET https://{your-domain}.via.proabono.com/Sub/PricingTableOffers/
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/PricingTableOffers/?IdPricingTable=2
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 3,
  "TotalItems": 3,
  "DateGenerated": "2017-05-05T11:48:18.12Z",
  "Items": [
    {
      "Id": 2371,
      "DateUpdate": "2017-04-26T09:37:28.33Z",
      "IdUserUpdate": 11,
      "IdPricingTable": 2,
      "IdOffer": 2800,
      "Order": 3,
      "Links": [
        {
          "rel": "self",
          "href": "/Sub/PricingTableOffers/2371"
        }
      ]
    },
    {
      "Id": 2364,
      "DateUpdate": "2017-04-24T09:28:57.04Z",
      "IdUserUpdate": 11,
      "IdPricingTable": 2,
      "IdOffer": 2793,
      "Order": 2,
      "Links": [
        {
          "rel": "self",
          "href": "/Sub/PricingTableOffers/2364"
        }
      ]
    },
    {
      "Id": 2348,
      "DateUpdate": "2017-04-19T10:35:33.35Z",
      "IdUserUpdate": 11,
      "IdPricingTable": 2,
      "IdOffer": 2777,
      "Order": 1,
      "Links": [
        {
          "rel": "self",
          "href": "/Sub/PricingTableOffers/2348"
        }
      ]
    }
  ]
}

Get the collection of PricingTableOffers (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateUpdateMin List all PricingTableOffers updated/created after the date Datetime
DateUpdateMax List all PricingTableOffers updated/created before the date Datetime
IdPricingTable List all PricingTableOffers for a given PricingTable Integer
IdOffer List all PricingTableOffers for a given Offer Integer

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Sub/PricingTableOffers/?IdOffer=238&DateUpdateMin=2015-08-27T13:54:00

Returns

API Backoffice - Subscriptions

Subscriptions describe the conditions of the relationship between your Customer and your Site/Service/Application.

Subscription Resource

Property Description Type
Id Id of the Subscription Object Integer
IdOffer Id of the Offer subscribed by the Customer IdCustomer Integer
IdCustomer Id of the Customer who owns this Subscription Integer
IdCustomerBuyer Id of the Customer who buys this Subscription Integer
Name Name of the Subscription String
TitleLocalized Title of the Subscription in the language of the Customer String
DescriptionLocalized Description of the Subscription in the language of the Customer String
Language Language of the Subscription String Language
DateStart Date when the Subscription started Integer
AmountUpFront Amount of the Upfront fee, Setup fee or Initial fee of the Subscription in cents Integer
AmountTrial Amount of the Trial period in cents Integer
DurationTrial Number of Trial Time Unit Integer
UnitTrial Time Unit of Trial TimeUnit
AmountRecurrence Amount of each recurrence in cents Integer
DurationRecurrence Number of Recurrence Time Unit Integer
UnitRecurrence Time Unit of Recurrence TimeUnit
CountRecurrences Number of Recurrences Integer
CountMinRecurrences Minimum recurrences the customer committed to pay Integer
AmountTermination Amount of the Termination Fee in cents Integer
StateSubscription State of the Subscription StateSubscription
Metadata A set of key/value pairs that you can add to a subscription Metadata
Links Useful links concerning the Subscription See below.

Note : Amounts are set without currency because currency is set at the Segment Level.

See Object Convention

Collection of links

Rel Description
related-offer Offer related to the Subscription
related-customer Customer which benefits of the Subscription
related-customerbuyer Customer who pays the Subscription
collection-subscriptionfeature Collection of SubscriptionFeatures related to the Subscription. See SubscriptionFeature.
collection-subscriptionperiod Collection of SubscriptionPeriods related to the Subscription. (Only visible if there is any SubscriptionPeriods.) See Subscription Periods.
related-simulation See Compute a Subscription Pricing.
hosted-subscribe Unique encrypted link to conclude and pay the Subscription for the concerned Customer.
hosted-related-subscription Unique encrypted link to the detailed page of the Subscription for the concerned Customer.

Create a Subscription

Definition
POST https://{your-domain}.via.proabono.com/Sub/Subscriptions
Example Request
POST https://sandbox-eur.via.proabono.com/Sub/Subscriptions
{
    "IdOffer": 308,
    "IdCustomer": 342896
}
Example Response
{
    "Id": 149747,
    "IdSegment": 44,
    "DateUpdate": "2015-05-11T15:11:04.23Z",
    "IdUserUpdate": 69719,
    "DateCreation": "2015-05-11T15:11:04.23Z",
    "IdUserCreation": 69719,
    "StateSubscription": "InitiatedAgent",
    "IdOffer": 308,
    "IdCustomer": 342896,
    "IdCustomerBuyer": 342896,  
    "Name": "Subscription 25",
    "Language": "en",
    "TitleLocalized": "Premium offer",
    "AmountRecurrence": 4900,
    "DurationRecurrence": 1,
    "UnitRecurrence": "Month",
    "CountRecurrences": 1,
    "Links": [
        {
            "rel": "self",
            "href": "/Sub/Subscriptions/149747"
        },
        {
            "rel": "related-offer",
            "href": "/Sub/Offers/308"
        },
        {
            "rel": "related-customer",
            "href": "/Distribution/Customers/342896"
        },
        {
            "rel": "related-customerbuyer",
            "href": "/Distribution/Customers/342896"
        },
        {
            "rel": "collection-subscriptionfeature",
            "href": "/Sub/SubscriptionFeatures?idSubscription=149747"
        },
        {
            "rel": "collection-subscriptionperiod",
            "href": "/Sub/SubscriptionPeriods?idSubscription=149747"
        },
        {
            "rel": "hosted-related-subscription",
            "href": "https://sandbox-eur.proabono.com/subscription/{Unique-Enrypted-Url}"
        }
    ]
}

Create a subscription in ProAbono.

Request Parameters

Parameter Required? Description Type
IdOffer Yes Id of the Offer the Customer wants to subscribe Integer
IdCustomer Yes Id of the Customer who wants to subscribe the Offer IdOffer Integer
IdCustomerBuyer No Id of the Customer who buys this Subscription. By default, IdCustomerBuyer = IdCustomer. Integer
Name No Name of the Subscription String
TitleLocalized No Title of the Subscription in the language of the Customer String
DescriptionLocalized No Description of the Subscription in the language of the Customer String
Language No Language of the Subscription String Language
AmountUpFront No Amount of the Upfront fee, Setup fee or Initial fee of your offer in cents Integer
AmountTrial No Amount of the Trial period in cents Integer
DurationTrial No Number of Trial Time Unit Integer
UnitTrial No Time Unit of Trial TimeUnit
AmountRecurrence No Amount of each recurrence in cents Integer
DurationRecurrence No Number of Recurrence Time Unit Integer
UnitRecurrence No Time Unit of Recurrence TimeUnit
CountRecurrences No Number of Recurrences Integer
CountMinRecurrences No Minimum recurrences the customer will be committed to pay Integer
AmountTermination No Amount of the Termination Fee in cents Integer
Metadata No A set of key/value pairs that you can add to a subscription. Useful for storing additional information about the subscription in a structured format. Metadata

Returns

Retrieve a Subscription

Definition
GET https://{your-domain}.via.proabono.com/Sub/Subscriptions/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/Subscriptions/90285
Example Response
{
    "Id": 90285,
    "IdSegment": 44,
    "DateUpdate": "2015-04-09T00:40:00.00Z",
    "IdUserUpdate": 3,
    "DateCreation": "2015-01-09T10:58:00.00Z",
    "IdUserCreation": 69719,
    "StateSubscription": "Running",
    "IdOffer": 2344,
    "IdCustomer": 80269,
    "IdCustomerBuyer": 80269,   
    "Name": "Subscription 10",
    "Language": "fr",
    "TitleLocalized": "Premium Offer",
    "DescriptionLocalized": "Most Popular Offer!",
    "DateStart": "2015-01-09T00:00:00.00Z",
    "AmountRecurrence": 49700,
    "DurationRecurrence": 1,
    "UnitRecurrence": "Month",
    "Links": [
        {
            "rel": "related-offer",
            "href": "/Sub/Offers/2344"
        },
        {
            "rel": "related-customer",
            "href": "/Distribution/Customers/80269"
        },
        {
            "rel": "related-customerbuyer",
            "href": "/Distribution/Customers/64959"
        },
        {
            "rel": "collection-subscriptionfeature",
            "href": "/Sub/SubscriptionFeatures?idSubscription=90285"
        },
        {
            "rel": "collection-subscriptionperiod",
            "href": "/Sub/SubscriptionPeriods?idSubscription=90285"
        },
        {
            "rel": "hosted-related-subscription",
            "href": "https://sandbox-eur.proabono.com/subscription/{Unique-Enrypted-Url}"
        }
    ]
}

Retrieve a subscription by id

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the Subscription to be retrieved. Integer

Returns

Update a Subscription

Definition
PUT https://{your-domain}.via.proabono.com/Sub/Subscriptions/{Id}
Example Request
PUT https://sandbox-eur.via.proabono.com/Sub/Subscriptions/2831
{
    "Name": "Premium Pro",
    "TitleLocalized": "Premium Pro Offer",
    "DescriptionLocalized": "Sales ! $349/month instead of $497/month",
    "AmountRecurrence": 69700,
    "DurationRecurrence": 3,
    "UnitRecurrence": "Month",
    "StateSubscription":"Running"
    "Language": "fr",   
}

Update your Subscription as you want.

Request Parameters

Parameter Required? Description Type
Id Yes Id of the Subscription Integer
Name Yes Name of the Subscription String
TitleLocalized Yes Title of the Subscription in the language of the Customer String
DescriptionLocalized No Description of the Subscription in the language of the Customer String
IdOffer No Id of the Offer related to the Subscription Integer
StateSubscription Yes State of the Subscription StateSubscription
Language Yes Language of the Subscription String Language
AmountUpFront No Amount of the Upfront fee, Setup fee or Initial fee of your subscription in cents Integer
AmountTrial No Amount of the Trial period in cents Integer
DurationTrial No Number of Trial Time Unit Integer
UnitTrial No Time Unit of Trial TimeUnit
AmountRecurrence Yes Amount of each recurrence in cents Integer
DurationRecurrence Yes Number of Recurrence Time Unit Integer
UnitRecurrence Yes Time Unit of Recurrence TimeUnit
CountRecurrences No Number of Recurrences Integer
CountMinRecurrences No Minimum recurrences the customer committed to pay Integer
AmountTermination No Amount of the Termination Fee in cents Integer

Returns

Compute a Subscription Pricing

Definition
GET https://{your-domain}.via.proabono.com/Sub/Subscriptions/{Id}/Simulation
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/Subscriptions/644/Simulation
Example Response 1 - Subscription with free trial
{
    "DateGeneration": "2015-09-12T17:34:42.10Z",
    "IdSubscription": 644,
    "AmountSubtotal": 0,
    "AmountTotalDue": 0,
    "Details": [
        {
            "IdSubscription": 644,
            "TypeMove": "SubscriptionInitialFee",
            "Label": "Trial amount",
            "AmountSubtotal": 0,
            "AmountTotalDue": 0
        }
    ],
    "NextTerm": {
        "IdSubscription": 644,
        "AmountSubtotal": 9900,
        "AmountTotalDue": 11632,
        "Details": [
            {
                "IdSubscription": 644,
                "TypeMove": "SubscriptionRecurringAmount",
                "Label": "Subscription amount",
                "AmountSubtotal": 9900,
                "AmountTotalDue": 11632,
                "Tax1": {
                    "IdTaxProfile": 252,
                    "Label": "Tax1",
                    "Rate": 1000,
                    "Amount": 990,
                    "Type": "Outside"
                },
                "Tax2": {
                    "IdTaxProfile": 253,
                    "Label": "Tax2",
                    "Rate": 750,
                    "Amount": 742,
                    "Type": "Outside"
                }
            }
        ]
    }
}
Example Response 2 - Subscription with paying features
{
    "DateGeneration": "2015-09-12T17:35:12.20Z",
    "IdSubscription": 645,
    "AmountSubtotal": 17200,
    "AmountTotalDue": 20209,
    "Details": [
        {
            "IdSubscription": 645,
            "TypeMove": "SubscriptionInitialFee",
            "Label": "Up-front amount",
            "AmountSubtotal": 4900,
            "AmountTotalDue": 5757,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 490,
                "Type": "Outside"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 367,
                "Type": "Outside"
            }
        },
        {
            "IdSubscription": 645,
            "TypeMove": "SubscriptionRecurringAmount",
            "Label": "Subscription amount",
            "AmountSubtotal": 9900,
            "AmountTotalDue": 11632,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 990,
                "Type": "Outside"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 742,
                "Type": "Outside"
            }
        },
        {
            "IdSubscription": 645,
            "IdFeature": 239,
            "TypeMove": "SubscriptionFeatures",
            "Label": "Module A",
            "AmountSubtotal": 1000,
            "AmountTotalDue": 1175,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 100,
                "Type": "Outside"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 75,
                "Type": "Outside"
            }
        },
        {
            "IdSubscription": 645,
            "IdFeature": 238,
            "TypeMove": "SubscriptionFeatures",
            "Label": "Users",
            "AmountSubtotal": 1400,
            "AmountTotalDue": 1645,
            "QuantityReal": 3,
            "QuantityBilled": 3,
            "Tax1": {
                "IdTaxProfile": 252,
                "Label": "Tax1",
                "Rate": 1000,
                "Amount": 140,
                "Type": "Outside"
            },
            "Tax2": {
                "IdTaxProfile": 253,
                "Label": "Tax2",
                "Rate": 750,
                "Amount": 105,
                "Type": "Outside"
            }
        }
    ]
}

Compute a pricing estimation of the Subscription based on the Offer, the Subscription overrides and the Customer. ProAbono also applies Taxes if necessary.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the Subscription. Integer

Example 1 - Subscription with free trial

Example 2 - Subscription with paying features

Returns

Structure of the Global Answer of the Computation

Parameter Required? Description Type
DateGeneration Yes Date of the Computation Datetime
IdSubscription Yes Id of the Subscription evaluated Integer
AmountSubtotal Yes Total Amount in cents without Taxes for the first Term Integer
AmountTotalDue Yes Total Amount in cents with Taxes for the first Term Integer
Details Yes Collection of Details of the Subscription for the first Term EvaluatedSubscriptionDetails - See below
NextTerm No Evaluation of the next Term See below

Structure of NextTerm

Parameter Required? Description Type
IdSubscription Yes Id of the Subscription evaluated Integer
AmountSubtotal Yes Total Amount in cents without Taxes for Next Term Integer
AmountTotalDue Yes Total Amount in cents with Taxes for the Next Term Integer
Details Yes Collection of Details of the Subscription for the Next Term EvaluatedSubscriptionDetails - See below

Structure of a EvaluatedSubscriptionDetails

Parameter Required? Description Type
IdSubscription Yes Id of the Subscription evaluated Integer
IdFeature Yes if the SubscriptionDetail is related to a Feature Id of the Feature linked to the SubscriptionDetail. Integer
TypeMove Yes Type of CustomerMove TypeMove
Label Yes Label of the Detail of the Subscription String
AmountSubtotal Yes Amount in cents without Taxes Integer
AmountTotalDue Yes Amount in cents with Taxes Integer
QuantityReal Yes if the SubscriptionDetail is related to a Feature with type Limitation or Consumption Quantity of the Feature available for the Customer Integer
QuantityBilled Yes if the SubscriptionDetail is related to a Feature with type Limitation or Consumption Quantity of the Feature billed to the Customer Integer
Tax1 No Details of Tax1 applied for the concerned Customer EvaluatedSubscriptionDetailsTax - See below
Tax2 No Details of Tax2 applied for the concerned Customer EvaluatedSubscriptionDetailsTax - See below

Structure of a EvaluatedSubscriptionDetailsTax

Parameter Required? Description Type
IdTaxProfile Yes Id of the Tax Profile Integer
Label Yes Label of the Tax String
Rate Yes Rate of the Tax applied in ‱. Ex 15,6% -> 1560. Integer
Amount Yes Tax Amount in cents calculated base on the rate of Tax Integer
Type Yes Type of Tax TypeTax

List Subscriptions

Definition
GET https://{your-domain}.via.proabono.com/Sub/Subscriptions/
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/Subscriptions/?SizePage=3
Example Response
{
    "Page": 1,
    "SizePage": 3,
    "Count": 3,
    "TotalItems": 15,
    "DateGenerated": "2015-04-27T13:54:26.72Z",
    "Items": [
        {
            "Id": 90285,
            "IdSegment": 44,
            "DateUpdate": "2015-04-09T00:40:00.00Z",
            "IdUserUpdate": 3,
            "DateCreation": "2015-01-09T10:58:00.00Z",
            "IdUserCreation": 69719,
            "StateSubscription": "Running",
            "IdOffer": 2344,
            "IdCustomer": 80269,
            "IdCustomerBuyer": 80269,           
            "Name": "Subscription 13",
            "Language": "fr",
            "TitleLocalized": "Premium Offer",
            "DescriptionLocalized": "Most Popular Offer!",
            "DateStart": "2015-01-09T00:00:00.00Z",
            "AmountRecurrence": 49700,
            "DurationRecurrence": 1,
            "UnitRecurrence": "Month",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/Subscriptions/90285"
                }
            ]
        },
        {
            "Id": 91456,
            "IdSegment": 44,
            "DateUpdate": "2015-04-09T00:42:00.00Z",
            "IdUserUpdate": 3,
            "DateCreation": "2015-01-09T10:59:00.00Z",
            "IdUserCreation": 69719,
            "StateSubscription": "Running",
            "IdOffer": 2344,
            "IdCustomer": 78654,
            "IdCustomerBuyer": 78654,           
            "Name": "Subscription 14",
            "Language": "fr",
            "TitleLocalized": "Premium Offer",
            "DescriptionLocalized": "Most Popular Offer!",
            "DateStart": "2015-01-09T00:00:00.00Z",
            "AmountRecurrence": 49700,
            "DurationRecurrence": 1,
            "UnitRecurrence": "Month",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/Subscriptions/91456"
                }
            ]
        },
        {
            "Id": 65487,
            "IdSegment": 44,
            "DateUpdate": "2015-04-09T00:52:00.00Z",
            "IdUserUpdate": 3,
            "DateCreation": "2015-01-09T11:12:00.00Z",
            "IdUserCreation": 69719,
            "StateSubscription": "Running",
            "IdOffer": 2344,
            "IdCustomer": 34512,
            "IdCustomerBuyer": 34512,           
            "Name": "Subscription 12",
            "Language": "fr",
            "TitleLocalized": "Premium Offer",
            "DescriptionLocalized": "Most Popular Offer!",
            "DateStart": "2015-01-09T00:00:00.00Z",
            "AmountRecurrence": 49700,
            "DurationRecurrence": 1,
            "UnitRecurrence": "Month",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/Subscriptions/65487"
                }
            ]
        }
    ],
    "Links": [
        {
            "rel": "next",
            "href": "/Sub/Subscriptions/?SizePage=3&page=2"
        }
    ]
}

Get the collection of Subscriptions (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateCreationMin List all Subscriptions created after the date Datetime
DateCreationMax List all Subscriptions created before the date Datetime
DateUpdateMin List all Subscriptions update after the date Datetime
DateUpdateMax List all Subscriptions updated before the date Datetime
IdOffer List all Subscriptions related to a known Offer String
IdCustomer List all Subscriptions related to a known Customer String
IdCustomerBuyer List all Subscriptions related to a known Buyer String
Name List all Subscriptions related to the same Name or a portion of the Name String
IdSegment List all Subscriptions related to the same Segment Integer
DateStartMin List all Subscriptions started after the date Datetime
DateStartMax List all Subscriptions started before the date Datetime
StateSubscription List all Subscriptions with a specific StateSubscription StateSubscription

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Sub/Subscriptions/?stateSubscription=Ok&dateStartMin=2015-04-27T13:54:00

Returns

API Backoffice - Subscription Periods

A Subscription Period is a period of time during which your Customer is committed.
Subscription Periods are automatically added when the subscription starts and at each renewal.

Note that the periods for a given subscription cannot overlap.

Subscription Period Resource

Property Description Type
Id Id of the Subscription Period Object Integer
IdSubscription Id of the Subscription related to this Subscription Period Integer
DateStart Start Date of the Subscription Period Datetime
DateTerm Term Date (End Date) of the Subscription Period Datetime
IsTrial If false, the Subscription Period is not a Trial Period Boolean
Links Useful links concerning the Subscription Period

See Object Convention

Retrieve a Subscription Period

Definition
GET https://{your-domain}.via.proabono.com/Sub/SubscriptionPeriods/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/SubscriptionPeriods/593
Example Response
{
    "Id": 593,
    "DateUpdate": "2015-08-25T15:55:54.98Z",
    "IdUserUpdate": 11,
    "DateCreation": "2015-08-25T15:55:54.98Z",
    "IdUserCreation": 11,
    "IdSubscription": 545,
    "DateStart": "2015-08-25T15:55:54.98Z",
    "DateTerm": "2015-09-03T15:55:54.98Z",
    "IsTrial": true,
    "Links": [
        {
            "rel": "related-subscription",
            "href": "/Sub/Subscriptions/545"
        }
    ]
}

Retrieve a Subscription Period by id.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the Subscription Period to be retrieved. Integer

Returns

List Subscription Periods

Definition
GET https://{your-domain}.via.proabono.com/Sub/SubscriptionPeriods/
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/SubscriptionPeriods/
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 3,
    "TotalItems": 3,
    "DateGenerated": "2015-09-13T07:50:27.18Z",
    "Items": [
        {
            "Id": 621,
            "DateUpdate": "2015-09-04T06:55:19.85Z",
            "IdUserUpdate": 147,
            "DateCreation": "2015-09-04T06:55:19.85Z",
            "IdUserCreation": 147,
            "IdSubscription": 560,
            "DateStart": "2015-09-04T06:55:19.85Z",
            "DateTerm": "2015-10-04T06:55:19.85Z",
            "IsTrial": false,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/SubscriptionPeriods/621"
                }
            ]
        },
        {
            "Id": 596,
            "DateUpdate": "2015-08-26T08:43:15.12Z",
            "IdUserUpdate": 1097,
            "DateCreation": "2015-08-26T08:43:15.12Z",
            "IdUserCreation": 1097,
            "IdSubscription": 547,
            "DateStart": "2015-08-26T08:43:15.12Z",
            "DateTerm": "2015-09-26T08:43:15.12Z",
            "IsTrial": false,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/SubscriptionPeriods/596"
                }
            ]
        },
        {
            "Id": 593,
            "DateUpdate": "2015-08-25T15:55:54.98Z",
            "IdUserUpdate": 11,
            "DateCreation": "2015-08-25T15:55:54.98Z",
            "IdUserCreation": 11,
            "IdSubscription": 545,
            "DateStart": "2015-08-25T15:55:54.98Z",
            "DateTerm": "2015-09-03T15:55:54.98Z",
            "IsTrial": true,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/SubscriptionPeriods/593"
                }
            ]
        }
    ]
}

Get the collection of Subscription Periods (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateUpdateMin List all Subscription Periods updated/created after the date Datetime
DateUpdateMax List all Subscription Periods updated/created before the date Datetime
IdSubscription List all Subscription Periods of a Subscription Integer
DateStartMin List all Subscription Periods started after the date Datetime
DateStartMax List all Subscription Periods started before the date Datetime
DateTermMin List all Subscription Periods ended/will end after the date Datetime
DateTermMax List all Subscription Periods ended/will end before the date Datetime

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Sub/SubscriptionPeriods/?IdSubscription=545&DateStartMin=2015-08-27T13:54:00

Returns

API Backoffice - Subscription Features

A SubscriptionFeature describes the relationship of Feature and a Customer via its Subscription.

SubscriptionFeature Resource

Property Description Type
Id Id of the Subscription Feature Object Integer
IdSubscription Id of the Subscription related to the SubscriptionFeature Integer
IdFeature Id of the Feature related to the SubscriptionFeature Integer
Properties List of properties of the SubscriptionFeature See Feature Properties
QuantityIncluded Limitation/Quota/NumberOfUnit of the Feature included in the Subscription of the Customer Integer
QuantityCurrent Current Limitation/Quota/NumberOfUnit of the Feature available for the Customer Integer
Steps Collection of Steps See below.
Links Useful links concerning the Subscription Feature

See Object Convention

Example 1 - $10 for Module A
"Steps": [
    {
        "AmountCeiling": 1000
    }
]
Example 2 - $7 per user
"Steps": [
    {
        "Increment": 1,
        "AmountPerIncrement": 700
    }
]
Example 3 - $7 per User for the 10st User and then 5$ per User
"Steps": [
    {
        "QuantityMax": 10,
        "Increment": 1,
        "AmountPerIncrement": 700
    },
    {
        "Increment": 1,
        "AmountPerIncrement": 500
    }
]
Example 4 - $7 per User with a maximum cost of $150
"Steps": [
    {
        "Increment": 1,
        "AmountPerIncrement": 700,
        "AmountCeiling": 15000
    }
]
Example 5 - $100 per 5 Users until 200 users then $12 per user
"Steps": [
    {
        "QuantityMax": 200, 
        "Increment": 5,
        "AmountPerIncrement": 10000
    },
    {   
        "Increment": 1,
        "AmountPerIncrement": 1200
    }   
]

Structure of a SubscriptionFeatureStep

Parameter Description Type
QuantityMax Limit max of Feature for the Step Integer
Increment Quantity of Feature per Increment (Size of Increment) for the Step Integer
AmountPerIncrement Amount in cents per Increment for the Step Integer
AmountCeiling Amount max in cents for the Step Integer

See some examples on the right.

Retrieve a SubscriptionFeature

Definition
GET https://{your-domain}.via.proabono.com/Sub/SubscriptionFeatures/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/SubscriptionFeatures/2372
Example Response
{
    "Id": 2372,
    "DateUpdate": "2015-09-12T17:27:00.67Z",
    "IdUserUpdate": 11,
    "IdSubscription": 645,
    "IdFeature": 238,
    "Properties": "UpdatableBeforeSubscription, UpdatableAfterSubscription, FreeInTrial",
    "QuantityIncluded": 1,
    "QuantityCurrent": 3,
    "Steps": [
        {
            "Increment": 1,
            "AmountPerIncrement": 700
        }
    ],
    "Links": [
        {
            "rel": "related-subscription",
            "href": "/Sub/Subscriptions/645"
        }
    ]
}

Retrieve a SubscriptionFeature by id.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the SubscriptionFeature to be retrieved. Integer

Returns

Update a Subscription Feature

Definition
PUT https://{your-domain}.via.proabono.com/Sub/SubscriptionFeatures/{Id}
Example Request
PUT https://sandbox-eur.via.proabono.com/Sub/SubscriptionFeatures/2372
{
    "Properties": "UpdatableBeforeSubscription, UpdatableAfterSubscription, FreeInTrial",
    "QuantityIncluded": 1,
    "QuantityCurrent": 8,
    "Steps": [
        {
            "Increment": 1,
            "AmountPerIncrement": 850
        }
    ]   
}

Update your SubscriptionFeature as you want.

Request Parameters

Parameter Required? Description Type
Id Yes Id of the SubscriptionFeature Integer
Properties No List of properties of the SubscriptionFeature See Feature Properties
QuantityIncluded No Limitation/Quota/NumberOfUnit of the Feature included in the Subscription of the Customer Integer
QuantityCurrent No Current Limitation/Quota/NumberOfUnit of the Feature available for the Customer Integer
Steps No Collection of Steps See SubscriptionFeatureStep in SubscriptionFeature

See SubscriptionFeatureStep examples in SubscriptionFeature Resource Section.

Returns

List SubscriptionFeatures

Definition
GET https://{your-domain}.via.proabono.com/Sub/SubscriptionFeatures/
Example Request
GET https://sandbox-eur.via.proabono.com/Sub/SubscriptionFeatures/?IdSubscription=645
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 2,
    "TotalItems": 2,
    "DateGenerated": "2015-09-13T12:18:55.21Z",
    "Items": [
        {
            "Id": 2373,
            "DateUpdate": "2015-09-12T17:27:00.76Z",
            "IdUserUpdate": 11,
            "IdSubscription": 645,
            "IdFeature": 239,
            "Properties": "FreeInTrial",
            "QuantityIncluded": 0,
            "Steps": [
                {
                    "AmountCeiling": 1000
                }
            ],
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/SubscriptionFeatures/2373"
                }
            ]
        },
        {
            "Id": 2372,
            "DateUpdate": "2015-09-12T17:27:00.67Z",
            "IdUserUpdate": 11,
            "IdSubscription": 645,
            "IdFeature": 238,
            "Properties": "UpdatableBeforeSubscription, UpdatableAfterSubscription, FreeInTrial",
            "QuantityIncluded": 1,
            "QuantityCurrent": 3,
            "Steps": [
                {
                    "Increment": 1,
                    "AmountPerIncrement": 700
                }
            ],
            "Links": [
                {
                    "rel": "self",
                    "href": "/Sub/SubscriptionFeatures/2372"
                }
            ]
        }
    ]
}

Get the collection of SubscriptionFeatures (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateUpdateMin List all SubscriptionFeatures updated/created after the date Datetime
DateUpdateMax List all SubscriptionFeatures updated/created before the date Datetime
IdSubscription List all SubscriptionFeatures for a given Subscription Integer
IdFeature List all SubscriptionFeatures for a given Feature Integer

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Sub/SubscriptionFeatures/?IdFeature=238&DateUpdateMin=2015-08-27T13:54:00

Returns

API Backoffice - Invoices

Invoice describes what you sold.

InvoiceDebit Resource

Property Description Type
Id Id of the Invoice Object Integer
FullNumber FullNumber of the Invoice String
Number Number of the Invoice Integer
IdCustomer Id of the Customer Integer
IdAddressBusiness Id of the Billing Address of the Seller Integer
IdAddressBilling Id of the Billing Address of the Customer Integer
StateInvoice State of the Invoice StateInvoice
DateIssue Date when the Invoice has been issued Datetime
DatePayment Date of payment Datetime
Language Language of the Invoice String Language
TypePayment Type of payment the Customer paid with TypePayment
AmountSubtotal Amount without taxes in cents Integer
AmountTotalDue Total Amount (with taxes) in cents Integer
Links Useful links concerning the Invoice See below.

See Object Convention

Collection of links

Rel Description
related-customer Customer of the Invoice
related-address-business Billing Address of the Seller. See Address.
related-address-billing Billing Address of the Customer. See Address.
collection-lines Collection of InvoiceLines related to the invoice. See InvoiceLines.
collection-payments Collection of Payments related to the invoice. See Payments.
hosted-related-invoice Unique encrypted link to the invoice in PDF format.

Invoice Additionnal Data

Example Request
GET https://sandbox-eur.via.proabono.com/Finance/InvoiceDebits/27?Extra=Customer&Extra=AddressBusiness&Extra=AddressBilling
Example Response
{
  "Id": 27,
  "DateUpdate": "2015-08-20T07:28:52.65Z",
  "IdUserUpdate": 955,
  "IdSegment": 3,
  "DateCreation": "2015-08-20T07:28:52.65Z",
  "IdUserCreation": 955,
  "Key": "9a5fb3bf-5041-439f-87e4-fad388bf7c96",
  "FullNumber": "F-3.00000002",
  "Number": 2,
  "IdCustomer": 64811,
  "IdAddressBusiness": 8,
  "IdAddressBilling": 29,
  "StateInvoice": "Paid",
  "DateIssue": "2015-08-20T07:28:53.23Z",
  "DatePayment": "2015-08-20T07:28:53.01Z",
  "Language": "en",
  "TypePayment": "Card",
  "AmountSubtotal": 20000,
  "AmountTotalDue": 20000,
  "Customer": {
    "Id": 64811,
    "DateUpdate": "2015-08-20T07:28:42.51Z",
    "IdUserUpdate": 955,
    "IdSegment": 3,
    "IdUserCreation": 11,
    "DateCreation": "2015-08-18T13:58:58.68Z",
    "StateLife": "Ok",
    "IdBusiness": 2,
    "ReferenceCustomer": "15b6cf07-1728-427d-9541-9055adc3ab16",
    "Name": "John Smith",
    "Email": "john@smith.com",
    "Language": "en"
  },
  "AddressBusiness": {
    "Id": 8,
    "IdBusiness": 2,
    "DateUpdate": "2015-07-27T13:22:55.37Z",
    "IdUserUpdate": 149,
    "Company": "Sandbox & Co.",
    "AddressLine1": "101 avenue des Champs Elysées",
    "ZipCode": "75008",
    "City": "Paris",
    "Country": "FR",
    "Region": "FR-75"
  },
  "AddressBilling": {
    "Id": 64811,
    "DateUpdate": "2015-08-20T07:28:41.67Z",
    "IdUserUpdate": 955,
    "IdCustomer": 64811,
    "Company": "Smith Inc.",
    "FirstName": "John",
    "LastName": "Smith",    
    "AddressLine1": "440 Grove Street",
    "AddressLine2": "1st Floor",
    "ZipCode": "10011",
    "City": "New York",
    "Country": "US",
    "Region": "US-NY",
    "Phone" : "1-631-850-3480"
  }, 
  "Links": [
    {
      "rel": "related-customer",
      "href": "/Distribution/Customers/64811"
    },
    {
      "rel": "related-address-business",
      "href": "/Finance/InvoiceAddressBusinesses/8"
    },
    {
      "rel": "related-address-billing",
      "href": "/Finance/InvoiceAddressBillings/29"
    },
    {
      "rel": "collection-lines",
      "href": "/Finance/InvoiceLines?IdInvoice=27"
    },
    {
      "rel": "collection-payments",
      "href": "/Finance/Payments?IdInvoice=27"
    },
    {
      "rel": "hosted-related-invoice",
      "href": "https://sandbox-eur.proabono.com/invoice-pdf/{Unique-Encrypted-Url}"
    }
  ]  
}

When retrieving an invoice or a list of invoices, you can request additionnal data to be returned.

To do so, add extra={resource-type} in the url.

Extra Resource Type
Customer
AddressBilling
AddressBusiness

Retrieve an InvoiceDebit

Definition
GET https://{your-domain}.via.proabono.com/Finance/InvoiceDebits/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/InvoiceDebits/19
Example Response
{
    "Id": 27,
    "DateUpdate": "2015-08-20T07:28:52.65Z",
    "IdUserUpdate": 955,
    "IdSegment": 3,
    "DateCreation": "2015-08-20T07:28:52.65Z",
    "IdUserCreation": 955,
    "Key": "9a5fb3bf-5041-439f-87e4-fad388bf7c96",
    "FullNumber": "F-3.00000002",
    "Number": 2,
    "IdCustomer": 64811,
    "IdAddressBusiness": 8,
    "IdAddressBilling": 29,
    "StateInvoice": "Paid",
    "DateIssue": "2015-08-20T07:28:53.23Z",
    "DatePayment": "2015-08-20T07:28:53.01Z",
    "Language": "en",
    "TypePayment": "Card",
    "AmountSubtotal": 20000,
    "AmountTotalDue": 20000,
    "Links": [
        {
            "rel": "related-customer",
            "href": "/Distribution/Customers/64811"
        },
        {
            "rel": "related-address-business",
            "href": "/Finance/InvoiceAddressBusinesses/8"
        },
        {
            "rel": "related-address-billing",
            "href": "/Finance/InvoiceAddressBillings/29"
        },
        {
            "rel": "collection-lines",
            "href": "/Finance/InvoiceLines?IdInvoice=27"
        },
        {
            "rel": "collection-payments",
            "href": "/Finance/Payments?IdInvoice=27"
        },
        {
            "rel": "hosted-related-invoice",
            "href": "https://sandbox-eur.proabono.com/invoice-pdf/{Unique-Encrypted-Url}"
        }
    ]
}

Retrieve a InvoiceDebit or commonly called Invoice.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the InvoiceDebit to be retrieved. Integer

See Invoice Additionnal Data if you need more additionnal data to be returned.

Returns

Refund an InvoiceDebit

Definition
POST https://{your-domain}.via.proabono.com/Finance/InvoiceDebits/RefundAuto?Id={IdInvoice}
Example Request
POST https://sandbox-eur.via.proabono.com/Finance/InvoiceDebits/RefundAuto?Id=54258
{
    "Reason": "The customer has terminated its subscription at the begin of the period. So he asked for a refund.",
    "InfoExtra1": "Internal Accounting Code : 79"
}
Example Response
{
    "Id": 54263,
    "DateUpdate": "2017-02-16T13:09:37.00Z",
    "IdUserUpdate": 104143,
    "IdSegment": 605,
    "DateCreation": "2017-02-16T13:09:36.80Z",
    "IdUserCreation": 104143,
    "Key": "de3ae359-49bd-4dc9-9074-78bb69f98fed",
    "FullNumber": "SA-605.00000035",
    "Number": 35,
    "IdCustomer": 171846,
    "IdInvoiceDebit": 54258,
    "IdAddressBusiness": 249,
    "IdAddressBilling": 41676,
    "StateInvoice": "Paid",
    "DateIssue": "2017-02-16T13:09:36.82Z",
    "DatePayment": "2017-02-16T13:09:36.90Z",
    "Language": "fr",
    "TypePayment": "Card",
    "AmountSubtotal": 9900,
    "AmountTotal": 11880,
    "TypeCredit": "Refund",
    "Reason": "The customer has terminated its subscription at the begin of the period. So he asked for a refund.",
    "InfoExtra1": "Internal Accounting Code : 79"
}

Refunds a ‘Paid’ InvoiceDebit and creates an InvoiceCredit.

Request Parameters

Parameter Required? Description Type
Id Yes Id of the Invoice to refund Integer
Reason Yes Reason of the Refund String
InfoExtra1 No Free to add extra information String
InfoExtra2 No Free to add extra information String

Returns

Register a payment for an InvoiceDebit

Definition
POST https://{your-domain}.via.proabono.com/Finance/InvoiceDebits/{Id}/Payment
Example Request
POST https://sandbox-eur.via.proabono.com/Finance/InvoiceDebits/78519/Payment
{
    "TypePayment": "ExternalCheck",
    "DatePayment": "2017-5-11",
    "InfoExtra1": "Check Number 1234567890",
    "InfoExtra2": ""
}
Example Response
{
    "Id": 78519,
    "DateUpdate": "2017-05-12T14:40:55.20Z",
    "IdUserUpdate": 52,
    "IdSegment": 3,
    "DateCreation": "2017-05-12T14:40:20.70Z",
    "IdUserCreation": 11,
    "Key": "a0b8aa48-74b4-43c2-86af-e0fbe87bd8d8",
    "FullNumber": "S-3.00000014",
    "Number": 14,
    "IsInRealMoney": false,
    "IdCustomer": 191566,
    "IdAddressBusiness": 255,
    "IdAddressBilling": 60523,
    "StateInvoice": "Paid",
    "DateIssue": "2017-05-12T14:40:20.78Z",
    "DatePayment": "2017-05-11T00:00:00.00Z",
    "Language": "fr",
    "TypePayment": "ExternalCheck",
    "AmountSubtotal": 2900,
    "AmountTotal": 3480,
    "InfoExtra1": "Check Number 1234567890"
}

Register a Payment for an InvoiceDebit. It sets the Status of an InvoiceDebit at Paid.
Useful when the payment is external (Not managed by ProAbono) : WireTransfer, Checks, Cash, …

Request Parameters

Parameter Required? Description Type
Id Yes Id of the Invoice Integer
TypePayment Yes Type of the Payment TypePayment
DatePayment Yes Date of the Payment of the Refund Datetime
InfoExtra1 No Free to add extra information String
InfoExtra2 No Free to add extra information String

Returns

List DebitInvoices

Definition
GET https://{your-domain}.via.proabono.com/Finance/InvoiceDebits/
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/InvoiceDebits/
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 2,
    "TotalItems": 2,
    "DateGenerated": "2015-08-27T13:32:35.74Z",
    "Items": [
        {
            "Id": 27,
            "DateUpdate": "2015-08-20T07:28:52.65Z",
            "IdUserUpdate": 955,
            "IdSegment": 3,
            "DateCreation": "2015-08-20T07:28:52.65Z",
            "IdUserCreation": 955,
            "Key": "9a5fb3bf-5041-439f-87e4-fad388bf7c96",
            "FullNumber": "F-3.00000002",
            "Number": 2,
            "IdCustomer": 64811,
            "IdAddressBusiness": 8,
            "IdAddressBilling": 29,
            "StateInvoice": "Paid",
            "DateIssue": "2015-08-20T07:28:53.23Z",
            "DatePayment": "2015-08-20T07:28:53.01Z",
            "Language": "en",
            "TypePayment": "Card",
            "AmountSubtotal": 20000,
            "AmountTotalDue": 20000,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/InvoiceDebits/27"
                }
            ]
        },
        {
            "Id": 19,
            "DateUpdate": "2015-07-27T13:22:55.43Z",
            "IdUserUpdate": 149,
            "IdSegment": 3,
            "DateCreation": "2015-07-27T13:22:55.43Z",
            "IdUserCreation": 149,
            "Key": "91f8ea96-617a-4ee8-8cf4-4fe8d085a156",
            "FullNumber": "F-3.00000001",
            "Number": 1,
            "IdCustomer": 64081,
            "IdAddressBusiness": 8,
            "IdAddressBilling": 21,
            "StateInvoice": "Paid",
            "DateIssue": "2015-07-27T13:22:56.10Z",
            "DatePayment": "2015-07-27T13:22:55.93Z",
            "Language": "fr",
            "TypePayment": "Card",
            "AmountSubtotal": 20000,
            "AmountTotalDue": 20000,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/InvoiceDebits/19"
                }
            ]
        }
    ]
}

Get the collection of DebitInvoices (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateIssueMin List all invoices issued after the date Datetime
DateIssueMax List all invoices issued before the date Datetime
DatePaymentMin List all invoices paid after the date Datetime
DatePaymentMax List all invoices paid before the date Datetime
StateInvoice List all invoices with a specific state StateInvoice
NumberMin List all invoices issued after a specific 'Number’ Integer
NumberMax List all invoices issued before a specific 'Number’ Integer
TypePayment List all invoices with a specific type of payment TypePayment
IdCustomer List all invoices of a Customer Integer
ReferenceCustomer List all invoices of a Customer String

See Invoice Additionnal Data if you need more additionnal data to be returned.

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Finance/InvoiceDebits/?StateInvoice=Paid&DatePaymentMin=2015-04-27T13:54:00

Returns

API Backoffice - Invoice Lines

InvoiceLine describes a content of an invoice.

InvoiceLine Resource

Property Description Type
Id Id of the InvoiceLine Object Integer
IdInvoice Id of the Invoice to which this InvoiceLine belongs. Integer
IdSubscription Id of the Subscription which to which this InvoiceLine belongs. Integer
TextLocalized Description of the content of the InvoiceLine String
AmountSubtotal Amount without taxes in cents Integer
AmountTotalDue Total Amount (with taxes) in cents Integer
RateTax1 Rate of Tax1 in ‱. Ex 15,6% -> 1560. Integer
LabelTax1 Label of Tax1 String
RateTax2 Rate of Tax2 in ‱. Ex 15,6% -> 1560. Integer
LabelTax2 Label of Tax2 String

See Object Convention

Retrieve an InvoiceLine

Definition
GET https://{your-domain}.via.proabono.com/Finance/InvoiceLines/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/InvoiceLines/76
Example Response
{
    "Id": 76,
    "DateUpdate": "2015-09-12T12:40:12.14Z",
    "IdUserUpdate": 1237,
    "IdInvoice": 37,
    "IdSubscription": 639,
    "TextLocalized": "Up-front amount",
    "AmountSubtotal": 4900,
    "AmountTotalDue": 5757,
    "RateTax1": 1000,
    "LabelTax1": "Tax1",
    "RateTax2": 750,
    "LabelTax2": "Tax2",
    "Links": [
        {
            "rel": "related-invoice",
            "href": "/Finance/Invoices/37"
        },
        {
            "rel": "related-subscription",
            "href": "/Sub/Subscriptions/639"
        }
    ]
}

Retrieve a InvoiceLine.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the InvoiceLine to be retrieved. Integer

Returns

List InvoiceLines

Definition
GET https://{your-domain}.via.proabono.com/Finance/InvoiceLines/
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/InvoiceLines/?IdInvoice=37
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 4,
    "TotalItems": 4,
    "DateGenerated": "2015-09-12T13:52:48.85Z",
    "Items": [
        {
            "Id": 77,
            "DateUpdate": "2015-09-12T12:40:12.17Z",
            "IdUserUpdate": 1237,
            "IdInvoice": 37,
            "IdSubscription": 639,
            "TextLocalized": "Subscription amount",
            "AmountSubtotal": 9900,
            "AmountTotalDue": 11632,
            "RateTax1": 1000,
            "LabelTax1": "Tax1",
            "RateTax2": 750,
            "LabelTax2": "Tax2",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/InvoiceLines/77"
                }
            ]
        },
        {
            "Id": 78,
            "DateUpdate": "2015-09-12T12:40:12.17Z",
            "IdUserUpdate": 1237,
            "IdInvoice": 37,
            "IdSubscription": 639,
            "TextLocalized": "Module A",
            "AmountSubtotal": 1000,
            "AmountTotalDue": 1175,
            "RateTax1": 1000,
            "LabelTax1": "Tax1",
            "RateTax2": 750,
            "LabelTax2": "Tax2",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/InvoiceLines/78"
                }
            ]
        },
        {
            "Id": 79,
            "DateUpdate": "2015-09-12T12:40:12.17Z",
            "IdUserUpdate": 1237,
            "IdInvoice": 37,
            "IdSubscription": 639,
            "TextLocalized": "Users",
            "AmountSubtotal": 1400,
            "AmountTotalDue": 1645,
            "RateTax1": 1000,
            "LabelTax1": "Tax1",
            "RateTax2": 750,
            "LabelTax2": "Tax2",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/InvoiceLines/79"
                }
            ]
        },
        {
            "Id": 76,
            "DateUpdate": "2015-09-12T12:40:12.14Z",
            "IdUserUpdate": 1237,
            "IdInvoice": 37,
            "IdSubscription": 639,
            "TextLocalized": "Up-front amount",
            "AmountSubtotal": 4900,
            "AmountTotalDue": 5757,
            "RateTax1": 1000,
            "LabelTax1": "Tax1",
            "RateTax2": 750,
            "LabelTax2": "Tax2",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/InvoiceLines/76"
                }
            ]
        }
    ]
}

Get the collection of InvoiceLines (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateUpdateMin List all InvoiceLines updated/created after the date Datetime
DateUpdateMax List all InvoiceLines updated/created before the date Datetime
IdInvoice List all InvoiceLines of an Invoice Integer
IdSubscription List all InvoiceLines related to a specific Subscription Integer
AmountSubtotalMin List all InvoiceLines with AmountSubtotal equal or greater than AmountSubtotalMin Integer
AmountSubtotalMax List all InvoiceLines with AmountSubtotal equal or less than AmountSubtotalMax Integer
AmountTotalDueMin List all InvoiceLines with AmountSubtotal equal or greater than AmountTotalDue Integer
AmountTotalDueMax List all InvoiceLines with AmountSubtotal equal or less than AmountTotalDue Integer

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Finance/InvoiceLines/?IdInvoice=37&AmountTotalDueMin=1000

Returns

API Backoffice - CustomerBalance

The Balance of a Customer is the result of debit and credit moves.

CustomerMove describes a movement in the balance of a customer.

CustomerMoves can be viewed as :

CustomerMove Resource

Property Description Type
Id Id of the CustomerMove Object Integer
IdCustomer Id of the Customer related to this CustomerMove Integer
IdSubscription Id of the Subscription related to this CustomerMove Integer
IdSubscriptionPeriod Id of the Period of the Subscription related to this CustomerMove Integer
IdFeature Id of the Feature related to this CustomerMove Integer
TextLocalized Text of the CustomerMove in the language of the Customer String
AmountSubtotal Amount without taxes in cents Integer
AmountTotalDue Total Amount (with taxes) in cents Integer
TypeMove Type of the Move Unspecified
Links Useful links concerning the CustomerMove

Note : Amounts are set without currency because currency is set at the Segment Level.

See Object Convention

Create a CustomerMove

Definition
POST https://{your-domain}.via.proabono.com/Finance/CustomerMoves
Example Request
POST https://sandbox-eur.via.proabono.com/Finance/CustomerMoves
{
    "IdCustomer": 64811,
    "TextLocalized": "Extra Charges",
    "AmountSubtotal": 9900
}
Example Response
{
    "Id": 74,
    "DateUpdate": "2015-08-27T17:04:09.13Z",
    "IdUserUpdate": 11,
    "IdCustomer": 64811,
    "TypeMove": "Unspecified",
    "TextLocalized": "Extra Charges",
    "AmountSubtotal": 9900,
    "AmountTotalDue": 9900,
    "Links": [
        {
            "rel": "self",
            "href": "/Finance/CustomerMoves/74"
        }
    ]
}

Create a CustomerMove for a Customer. The CustomerMove can be linked to a Subscription or/and a Feature.

Request Parameters

Parameter Required? Description Type
IdCustomer Yes Id of the Customer related to this CustomerMoves Integer
IdSubscription No Id of the Subscription related to this CustomerMoves Integer
IdFeature No Id of the Feature related to this CustomerMoves Integer
TextLocalized Yes Text of the CustomerMove in the language of the Customer String
AmountSubtotal Yes Amount without taxes in cents Integer

Returns

Retrieve a CustomerMove

Definition
GET https://{your-domain}.via.proabono.com/Finance/CustomerMoves/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/CustomerMoves/74
Example Response
{
    "Id": 74,
    "DateUpdate": "2015-08-27T17:04:09.13Z",
    "IdUserUpdate": 11,
    "IdCustomer": 64811,
    "TypeMove": "Unspecified",
    "TextLocalized": "Extra Charges",
    "AmountSubtotal": 9900,
    "AmountTotalDue": 9900,
    "Links": [
        {
            "rel": "self",
            "href": "/Finance/CustomerMoves/74"
        }
    ]
}

Retrieve a CustomerMove by id.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the CustomerMove to be retrieved. Integer

Returns

Update a CustomerMove

Definition
PUT https://{your-domain}.via.proabono.com/Finance/CustomerMoves/{Id}
Example Request
PUT https://sandbox-eur.via.proabono.com/Finance/CustomerMoves/74
{
    "TextLocalized": "Extra Charges - Pack A",
}

Update the Text of the CustomerMove as you want.

Request Parameters

Parameter Required? Description Type
TextLocalized Yes Text of the CustomerMove in the language of the Customer String

Returns

List CustomerMoves

Definition
GET https://{your-domain}.via.proabono.com/Finance/CustomerMoves/
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/CustomerMoves/
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 3,
    "TotalItems": 3,
    "DateGenerated": "2015-08-27T17:12:26.58Z",
    "Items": [
        {
            "Id": 74,
            "DateUpdate": "2015-08-27T17:04:09.14Z",
            "IdUserUpdate": 11,
            "IdCustomer": 64811,
            "TypeMove": "Unspecified",
            "TextLocalized": "Extra Charges - Pack A",
            "AmountSubtotal": 9900,
            "AmountTotalDue": 9900,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/CustomerMoves/74"
                }
            ]
        },
        {
            "Id": 45,
            "DateUpdate": "2015-08-20T16:22:06.72Z",
            "IdUserUpdate": 11,
            "IdCustomer": 64802,
            "TypeMove": "Unspecified",
            "TextLocalized": "Pack 30 Euro",
                "AmountSubtotal": 3000,
            "AmountTotalDue": 3000,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/CustomerMoves/45"
                }
            ]
        },
        {
            "Id": 44,
            "DateUpdate": "2015-08-20T16:22:02.78Z",
            "IdUserUpdate": 11,
            "IdCustomer": 64802,
            "TypeMove": "Unspecified",
            "TextLocalized": "Discount -35 Euro",
            "AmountSubtotal": -3500,
            "AmountTotalDue": -3500,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Finance/CustomerMoves/44"
                }
            ]
        }
    ]
}

Get the collection of Subscriptions (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateUpdateMin List all CustomerMoves updated/created after the date Datetime
DateUpdateMax List all CustomerMoves updated/created before the date Datetime
IdCustomer List all CustomerMoves of a Customer Integer
IsNotBilled If true, list all CustomerMoves not billed yet. Boolean
AmountSubtotalMin List all CustomerMoves with AmountSubtotal equal or greater than AmountSubtotalMin Integer
AmountSubtotalMax List all CustomerMoves with AmountSubtotal equal or less than AmountSubtotalMax Integer
AmountTotalDueMin List all CustomerMoves with AmountSubtotal equal or greater than AmountTotalDue Integer
AmountTotalDueMax List all CustomerMoves with AmountSubtotal equal or less than AmountTotalDue Integer

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Finance/CustomerMoves/?IdCustomer=64811&DateUpdateMin=2015-07-27T13:54:00

Returns

API Backoffice - Payments

Payments refer to any payments to or from a Customer.

Payment Resource

Property Description Type
Id Id of the Payment Object Integer
IdCustomer Id of the Customer related to this Payment Integer
IdInvoice Id of the Invoice related to this Payment Integer
TypePayment Type of payment TypePayment
StatePayment State of the payment StatePayment
Amount Amount of the payment in cents Integer
DatePayment Date of the payment Datetime
IdGatewayTransaction Id of the Transaction related to this Payment Integer
Links Useful links concerning the Payment

Note : Amounts are set without currency because currency is set at the Segment Level.

See Object Convention

Retrieve a Payment

Definition
GET https://{your-domain}.via.proabono.com/Finance/Payments/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/Payments/74
Example Response
{
    "Id": 15,
    "DateUpdate": "2015-07-27T13:23:00.00Z",
    "IdUserUpdate": 149,
    "IdSegment": 3,
    "DateCreation": "2015-07-27T13:23:00.00Z",
    "IdUserCreation": 149,
    "IdCustomer": 64081,
    "IdInvoice": 19,
    "TypePayment": "Card",
    "StatePayment": "Completed",
    "Amount": 20000,
    "DatePayment": "2015-07-27T13:23:00.00Z",
    "IdGatewayTransaction": 15,
    "Links": [
        {
            "rel": "related-invoicedebit",
            "href": "/Finance/InvoiceDebits/19"
        },
        {
            "rel": "related-gatewaytransaction",
            "href": "/Gateway/GatewayTransactions/15"
        }
    ]
}

Retrieve a Payment by id.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the Payment to be retrieved. Integer

Returns

List Payments

Definition
GET https://{your-domain}.via.proabono.com/Finance/Payments/
Example Request
GET https://sandbox-eur.via.proabono.com/Finance/Payments/
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 2,
  "TotalItems": 2,
  "DateGenerated": "2015-08-27T22:06:17.19Z",
  "Items": [
    {
      "Id": 21,
      "DateUpdate": "2015-08-20T07:29:00.00Z",
      "IdUserUpdate": 955,
      "IdSegment": 3,
      "DateCreation": "2015-08-20T07:29:00.00Z",
      "IdUserCreation": 955,
      "IdCustomer": 64811,
      "IdInvoice": 27,
      "TypePayment": "Card",
      "StatePayment": "Completed",
      "Amount": 20000,
      "DatePayment": "2015-08-20T07:29:00.00Z",
      "IdGatewayTransaction": 23,
      "Links": [
        {
          "rel": "self",
          "href": "/Finance/Payments/21"
        }
      ]
    },
    {
      "Id": 15,
      "DateUpdate": "2015-07-27T13:23:00.00Z",
      "IdUserUpdate": 149,
      "IdSegment": 3,
      "DateCreation": "2015-07-27T13:23:00.00Z",
      "IdUserCreation": 149,
      "IdCustomer": 64081,
      "IdInvoice": 19,
      "TypePayment": "Card",
      "StatePayment": "Completed",
      "Amount": 20000,
      "DatePayment": "2015-07-27T13:23:00.00Z",
      "IdGatewayTransaction": 15,
      "Links": [
        {
          "rel": "self",
          "href": "/Finance/Payments/15"
        }
      ]
    }
  ]
}

Get the collection of Payments (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateUpdateMin List all Payments updated/created after the date Datetime
DateUpdateMax List all Payments updated/created before the date Datetime
IdCustomer List all Payments of a Customer Integer
TypePayment List all Payments with a specific type of payment TypePayment
AmountMin List all Payments with Amount equal or greater than AmountMin Integer
AmountMax List all Payments with Amount equal or less than AmountMax Integer

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Finance/Payments/?IdCustomer=64811&DateUpdateMin=2015-07-27T13:54:00

Returns

API Backoffice - Triggers

Triggers are created by ProAbono in response to certain events that have occurred in ProAbono.

Triggers can be related to an action executed in the backoffice (by an agent), on the hosted pages (by one of your customers), by ProAbono itself.

Trigger Resource

Parameter Mandatory? Description Type
Id Yes Id of the Trigger Integer
TypeTrigger Yes Type of the Trigger TypeTrigger
Links Useful links concerning the Trigger

See Object Convention

Each Trigger has attributes which depends on TypeTrigger.

Examples :

Trigger Additionnal Data

Example Request
GET https://sandbox-eur.via.proabono.com/Notification/Triggers/1625?Extra=Customer&Extra=Subscription&Extra=AddressBilling
Example Response
{
  "Id": 1343,
  "DateUpdate": "2015-08-20T07:28:54.10Z",
  "IdUserUpdate": 955,
  "TypeTrigger": "SubscriptionStarted",
  "IdBusiness": 2,
  "DateCreation": "2015-08-20T07:28:54.10Z",
  "IdUserCreation": 955,
  "IdSegment": 3,
  "IdOffer": 147,
  "IdCustomer": 64811,
  "IdSubscription": 483,
  "Customer": {
    "Id": 64811,
    "DateUpdate": "2015-08-20T07:28:42.51Z",
    "IdUserUpdate": 955,
    "IdSegment": 3,
    "IdUserCreation": 11,
    "DateCreation": "2015-08-18T13:58:58.68Z",
    "StateLife": "Ok",
    "IdBusiness": 2,
    "ReferenceCustomer": "15b6cf07-1728-427d-9541-9055adc3ab16",
    "Name": "John Smith",
    "Email": "john@smith.com",
    "Language": "en"
  },
  "AddressBilling": {
    "Id": 64811,
    "DateUpdate": "2015-08-20T07:28:41.67Z",
    "IdUserUpdate": 955,
    "IdCustomer": 64811,
    "Company": "Smith Inc.",
    "FirstName": "John",
    "LastName": "Smith",    
    "AddressLine1": "440 Grove Street",
    "AddressLine2": "1st Floor",
    "ZipCode": "10011",
    "City": "New York",
    "Country": "US",
    "Region": "US-NY",
    "Phone" : "1-631-850-3480"
  },
  "Subscription": {
    "Id": 483,
    "DateUpdate": "2015-08-20T07:28:54.01Z",
    "IdUserUpdate": 955,
    "IdSegment": 3,
    "DateCreation": "2015-08-20T07:28:27.26Z",
    "IdUserCreation": 955,
    "StateSubscription": "Running",
    "IdOffer": 147,
    "IdCustomer": 64811,
    "IdCustomerBuyer": 64811,
    "Name": "Subscription 9",
    "Language": "en",
    "TitleLocalized": "Premium Pro+",
    "DateStart": "2015-08-20T07:28:53.95Z",
    "AmountRecurrence": 20000,
    "DurationRecurrence": 1,
    "UnitRecurrence": "Month"
  }
}

When retrieving a trigger or a list of triggers, you can request additionnal data to be returned.

To do so, add extra={resource-type} in the url.

Extra Resource Type
Business
Segment
Agent
Offer
Customer
AddressBilling
AddressShipping
CustomerBuyer
Subscription
GatewayPermission
InvoiceDebit
InvoiceCredit

Retrieve a Trigger

Definition
GET https://{your-domain}.via.proabono.com/Notification/Triggers/{Id}
Example Request
GET https://sandbox-eur.via.proabono.com/Notification/Triggers/1625
Example Response
{
    "Id": 1625,
    "DateUpdate": "2015-08-26T08:41:29.18Z",
    "IdUserUpdate": 11,
    "TypeTrigger": "CustomerAdded",
    "IdBusiness": 2,
    "DateCreation": "2015-08-26T08:41:29.18Z",
    "IdUserCreation": 11,
    "IdSegment": 3,
    "IdCustomer": 64944,
    "Links": [
        {
              "rel": "self",
              "href": "/Notification/Triggers/1625"
        }
    ]
}

To retrieve a Trigger, you should use the id provided by ProAbono.

Request Parameters

Parameter Required? Description Type
Id Yes The identifier of the Trigger to be retrieved. Integer

See Trigger Additionnal Data if you need more additionnal data to be returned.

Returns

List Triggers

Definition
GET https://{your-domain}.via.proabono.com/Notification/Triggers
Example Request
GET https://sandbox-eur.via.proabono.com/Notification/Triggers
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 10,
  "TotalItems": 30,
  "DateGenerated": "2015-08-26T21:16:52.61Z",
  "Items": [
    {
      "Id": 1629,
      "DateUpdate": "2015-08-26T08:43:15.34Z",
      "IdUserUpdate": 1097,
      "TypeTrigger": "SubscriptionHistory",
      "IdBusiness": 2,
      "DateCreation": "2015-08-26T08:43:15.34Z",
      "IdUserCreation": 1097,
      "IdSegment": 3,
      "IdOffer": 191,
      "IdCustomer": 64944,
      "IdSubscription": 547,
      "Links": [
        {
          "rel": "self",
          "href": "/Notification/Triggers/1629"
        }
      ]
    },
    {
      "Id": 1628,
      "DateUpdate": "2015-08-26T08:43:15.33Z",
      "IdUserUpdate": 1097,
      "TypeTrigger": "SubscriptionStarted",
      "IdBusiness": 2,
      "DateCreation": "2015-08-26T08:43:15.33Z",
      "IdUserCreation": 1097,
      "IdSegment": 3,
      "IdOffer": 191,
      "IdCustomer": 64944,
      "IdSubscription": 547,
      "Links": [
        {
          "rel": "self",
          "href": "/Notification/Triggers/1628"
        }
      ]
    },
    {
      "Id": 1627,
      "DateUpdate": "2015-08-26T08:43:14.62Z",
      "IdUserUpdate": 1097,
      "TypeTrigger": "CustomerSettingsPaymentUpdated",
      "IdBusiness": 2,
      "DateCreation": "2015-08-26T08:43:14.62Z",
      "IdUserCreation": 1097,
      "IdSegment": 3,
      "IdCustomer": 64944,
      "Links": [
        {
          "rel": "self",
          "href": "/Notification/Triggers/1627"
        }
      ]
    },
    {
      "Id": 1626,
      "DateUpdate": "2015-08-26T08:43:04.72Z",
      "IdUserUpdate": 1097,
      "TypeTrigger": "CustomerBillingAddressUpdated",
      "IdBusiness": 2,
      "DateCreation": "2015-08-26T08:43:04.72Z",
      "IdUserCreation": 1097,
      "IdSegment": 3,
      "IdCustomer": 64944,
      "Links": [
        {
          "rel": "self",
          "href": "/Notification/Triggers/1626"
        }
      ]
    },
    {
      "Id": 1625,
      "DateUpdate": "2015-08-26T08:41:29.18Z",
      "IdUserUpdate": 11,
      "TypeTrigger": "CustomerAdded",
      "IdBusiness": 2,
      "DateCreation": "2015-08-26T08:41:29.18Z",
      "IdUserCreation": 11,
      "IdSegment": 3,
      "IdCustomer": 64944,
      "Links": [
        {
          "rel": "self",
          "href": "/Notification/Triggers/1625"
        }
      ]
    }
  ]
}

Get the collection of Triggers (filtered or not).

Optional Querystring Parameters

Parameters Description Type
DateCreationMin List all triggers created after the date Datetime
DateCreationMax List all triggers created before the date Datetime
TypeTrigger List all triggers with a specific Type of Trigger TypeTrigger
IdCustomer List all triggers related to a specific Customer Integer
ReferenceCustomer List all triggers related to a specific Customer String
IdOffer List all triggers related to a specific Offer Integer
ReferenceOffer List all triggers related to a specific Offer String
IdSubscription List all triggers related to a specific Subscription Integer

See Trigger Additionnal Data if you need more additionnal data to be returned.

You can combine these parameters to get exactly what you are looking for.

Example:

GET /Notification/Triggers/?TypeTrigger=CustomerAdded&DateCreationMin=2015-07-27T13:54:00&Extra=Customer&Extra=AddressBilling

Returns