NAV Navbar
json

Introduction

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

Welcome to the documentation of the ProAbono API Backoffice for Platform.

This documentation extends the documentation of ProAbono API Backoffice.

So it means you master how to create, get, use customers, offers, features, hosted pages ... described in ProAbono API Backoffice.

This API Documentation is dedicated to developers who need to manage at least one these following subjects :

Getting Started

Wondering how to:

  1. Register to ProAbono
  2. Make Your First Requests
  3. Authenticate to ProAbono API (Authentication, API Keys, API Endpoint)

See the Getting Started section of API Backoffice Documentation

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": "2023-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://via.proabono.com/Sub/Subscriptions?IdBusiness=2&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://via.proabono.com/Distribution/Customers/152867?IdBusiness=2
Example Response
{
    "Id": 152867,
    "DateUpdate": "2023-04-22T17:54:03.92Z",
    "IdUserUpdate": 11,
    "IdSegment": 3,
    "IdUserCreation": 11,
    "DateCreation": "2023-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 Yes 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": "2023-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

Languages

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

However you are responsible for the translation.

Common language code 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

Currencies

ProAbono supports all currencies.
Only the Payment Gateways can be limited to a set of currencies.

Proabono supports currency codes in ISO 4217 format.

Common currency codes are :

Code Currency
USD United States Dollar
EUR Euro Member Countries
GBP United Kingdom Pound
CAD Canada Dollar
AUD Australia Dollar
BRL Brazil Real
RUB Russia Ruble
SEK Sweden Krona
NOK Norway Krone
INR India Rupee

State Account

State Account Description
Enabled
Disabled
Locked
Deleted

State Permission

State Permission Description
Enabled
Defective
Expired
Deleted

State Transaction

State Transaction Description
Unconfirmed
Pending
AuthenticationRequired
Success
SuccessAssumed
Cancelled
CancelledSystem
Failed
FailedAssumed
ChargedBack
StopPayment

State Request

State Request Description
Success
Delayed

Type Prorata

Type Payment Description
Ignored Prorata is ignored
Balanced Prorata uses the Balance of the Customer

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

Type Transaction

Type Transaction Description
Debit
Credit

Status Transaction

StatusTransaction Description
Pending
Failed
Success

Type Gateway

Type Gateway 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 GatewayRequest

Type GatewayRequest Description
Undefined undefined
TransactionAuthorization Transaction authorization
TransactionDebitOnAuthorization Capture an authorization
TransactionDebit Debit transaction
TransactionCredit Credit transaction
TransactionRefund Transaction refund
TransactionCancellation Transaction cancellation
TransactionUpdate Transaction update
PermissionRegister Register a debit permission
PermissionGet Get a debit permission
PermissionList List debit permissions
PermissionUpdate Update a debit permission
PermissionDelete Delete a debit permission
PermissionRegisterWithDebit Debit + permission registration
PermissionDebit Debit a permission
PermissionAuthorization Transaction authorization on a permission
PermissionDebitOnAuthorization Capture an authorization on a permission
PermissionRefund Refund on a permission
SubscriberRegister Register a subscriber

Status GatewayRequest

Status GatewayRequest Description
Undefined (unspecified)
Success Operation succeeded
Registered Operation registered with success
CustomerError Unspecified error
CustomerCardNumberInvalId Invalid card number
CustomerCardExpirationDateInvalId Invalid card expiration date
CustomerCardCvvInvalId Invalid CVV
Customer3DSecureExpired 3DSecure authentication expired
Customer3DSecureFailed 3DSecure authentication failed
CustomerInsufficientFunds Insufficient funds
CardRejected Payment card : rejected
CardExpired Payment card : expired
CardDeclaredLost Payment card : declared lost
CardDeclaredStolen Payment card : declared stolen
TransactionUnknown Transaction : not found
TransactionInvalId Transaction : invalid
TransactionInvalidOperation Transaction : invalid operation
TransactionInvalidAmount Transaction : invalid amount
TransactionCancelled Transaction : cancelled
TransactionAutorisationExpired Transaction : authorization expired
TransactionRejected Transaction : rejected
TransactionFraudSuspected Transaction : rejected (fraud suspected)
GatewayError Gateway : unspecified error
GatewayConfigurationError Gateway : configuration error
GatewayConfigurationErrorCritical Gateway : configuration CRITICAL error
GatewayRetryFallback Gateway : retry on fallback URL
GatewayRetryImmediately Gateway : retry immediately
GatewayRetry1Hour Gateway : retry in 1 hour
GatewayRetry6Hours Gateway : retry in 6 hours
GatewayRetry12Hours Gateway : retry in 12 hours
GatewayApiError Gateway : unspecified API error
GatewayApiRateLimitReached Gateway : too many API requests, rate limit reached
GatewayApiExpectIpnResponse Gateway : no valid response, expect an IPN
GatewayApiRequestError Gateway : Invalid request (unspecified error)
GatewayApiRequestMissing Gateway : Invalid request (missing parameters)
GatewayApiRequestInvalId Gateway : Invalid request (invalid parameters)
GatewayApiRequestSyntaxError Gateway : Invalid request (syntax error)
GatewayApiResponseError Gateway : Invalid response (unspecified erreur)
GatewayApiResponseParsingError Gateway : Invalid response (parsing error)
GatewayApiResponseMismatchRequest Gateway : Invalid response (does not match the request)
GatewayApiResponseExpectedDataNotFound Gateway : Invalid response (expected data not found)
GatewaySubscriberNotRegistered Gateway : subscriber not registered
GatewaySubscriberNoCard Gateway : subscriber has no valid payment card
BankError Bank network : error (unspecified)

Type RateTax

Type RateTax Description
Standard -
Reduced -
Exempt -
ZeroRated -
Outside -

Address Resource

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

Type Content

Type Content Description
String Plain text
Html -
Url -

Type Trigger

Type Trigger Description
CustomerAdded Customer - added
CustomerBillingAddressUpdated Customer - contact info updated
CustomerShippingAddressUpdated Customer - shipping address updated
CustomerSettingsPaymentUpdated Customer - payment settings updated
CustomerPaymentMethodUpdated Customer - payment method updated
CustomerDateNextBillingUpdated Customer - next billing date updated
CustomerIsGreyListed Customer - added to grey list
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
CustomerSuspended Customer - suspended
CustomerEnabled Customer - enabled
CustomerDeleted Customer - deleted
SubscriptionStarted Subscription - started
SubscriptionRenewed Subscription - renewed
SubscriptionRestarted Subscription - restarted
SubscriptionSuspendedCustomer Subscription - suspended by the customer
SubscriptionSuspendedAgent Subscription - suspended by an agent
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
SubscriptionTerminatedForUpgrade Subscription - terminated for upgrade
SubscriptionUpgraded Subscription - upgraded
SubscriptionDateTermUpdated Subscription - renewal date updated
SubscriptionDelayedStartCancelled Subscription - delayed start cancelled
InvoiceDebitIssuedPaymentAuto Invoice - issued, charging programmed
InvoiceDebitIssuedPaymentOffline Invoice - payment due
InvoiceDebitPaid Invoice - paid
InvoiceDebitRefunded Invoice - refunded
InvoiceDebitCancelled Invoice - cancelled
InvoiceDebitPaymentAutoFailed Invoice - payment auto failed
InvoiceDebitPaymentAutoRequestedAuth Invoice - auto payment rejected: payment authentication requested
InvoiceDebitOverdue Invoice - overdue
InvoiceDebitDisputed Invoice - disputed
InvoiceCreditIssued Credit note - issued
InvoiceCreditPaid Credit note - paid
InvoiceCreditCancelled Credit note - cancelled
InvoiceCreditPaymentFailed InvoiceCreditPaymentFailed
InvoiceCreditOverdue Credit note - overdue
GatewayPermissionSoonExpired Payment permission - Expires soon
GatewayPermissionExpired Payment permission - Expires
GatewayPermissionInsufficientFunds Payment permission - insufficient funds
GatewayPermissionPaymentIssues Payment information - payment issues
GatewayPermissionDefective Payment permission - Defective
GatewayPermissionUnlocked Payment information - Re-enabling

API Backoffice - Segments

Segment stands for segment of your customers.

Segment Resource

Property Description Type
Id Id of the Segment Object Integer
Name Name of the Segment String
ReferenceSegment Shared Key of the Segment between ProAbono and your application String
Currency Currency of the Segment String Currency
HostCustomer Full domain name of your customer hosted pages
(Must be {domain-you-want}.proabono.com)
String
HostAgent Full domain name where an agent can log in the backoffice
(Must be {other-domain-you-want}.via.proabono.com)
String
StateLife State of the Segment StateLife
LanguageDefault Default language of the Segment String Language
Links Useful links concerning the Segment -

See Object Convention

Create a Segment

Definition
POST https://via.proabono.com/Organization/Segments
Example Request
POST https://via.proabono.com/Organization/Segments
{
    "IdBusiness": 44,
    "Name": "My site - Europe",
    "ReferenceSegment": "mysite-eur",
    "Currency": "EUR",
    "HostCustomer": "my-domain-name-eur.proabono.com",
    "HostAgent": "my-domain-name-eur.via.proabono.com"
}
Example Response
{
    "Id": 84,
    "DateUpdate": "2023-08-31T15:10:38.76Z",
    "IdUserUpdate": 11,
    "IdBusiness": 2,
    "DateCreation": "2023-08-31T15:10:38.76Z",
    "IdUserCreation": 11,
    "StateLife": "Ok",
    "ReferenceSegment": "mysite-eur",
    "Name": "My site - Europe",
    "LanguageDefault": "en",
    "Currency": "EUR",
    "HostCustomer": "my-domain-name-eur.proabono.com",
    "HostAgent": "my-domain-name-eur.via.proabono.com",
    "Links": [
        {
            "rel": "self",
            "href": "/Organization/Segments/84"
        },
        {
            "rel": "related-dashboard",
            "href": "https://my-domain-name-eur.via.proabono.com"
        },
        {
            "rel": "hosted-collection-offers",
            "href": "https://my-domain-name-eur.proabono.com/pricing"
        },
        {
            "rel": "related-business",
            "href": "/Organization/Businesses/2"
        },
        {
            "rel": "related-settings-invoice",
            "href": "/Organization/BusinessAddressBillings/2"
        },
        {
            "rel": "related-settings",
            "href": "/Organization/Segments/84/Settings"
        },
        {
            "rel": "related-settings-redirection",
            "href": "/Organization/Segments/84/SettingsRedirection"
        },
        {
            "rel": "related-settings-payment",
            "href": "/Organization/Segments/84/SettingsPayment"
        },
        {
            "rel": "collection-agent",
            "href": "/Distribution/Agents?idSegment=84"
        },
        {
            "rel": "collection-customer",
            "href": "/Distribution/Customers?idSegment=84"
        },
        {
            "rel": "collection-offer",
            "href": "/Sub/Offers?idSegment=84"
        }
    ]
}

Create/Declare a new Segment in ProAbono.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of Business in which the Segment has been created Integer
Name Yes Name of the Segment String
ReferenceSegment No If no ReferenceSegment is mentioned, ProAbono will generate one. String
Currency Yes Currency of the Segment String Currency
LanguageDefault Yes Default Language of the segment String Language
HostCustomer No Full domain name of your customer hosted pages
(Must be {domain-you-want}.proabono.com)
String
HostAgent No Full domain name where an agent can log in the backoffice
(Must be {other-domain-you-want}.via.proabono.com)
String
Returns

Retrieve a Segment

Definition
GET https://via.proabono.com/Organization/Segments/{Id}
Example Request
GET https://via.proabono.com/Organization/Segments/84
Example Response
{
    "Id": 84,
    "DateUpdate": "2023-08-31T15:10:38.77Z",
    "IdUserUpdate": 11,
    "IdBusiness": 2,
    "DateCreation": "2023-08-31T15:10:38.77Z",
    "IdUserCreation": 11,
    "StateLife": "Ok",
    "ReferenceSegment": "mysite-eur",
    "Name": "My site - Europe",
    "LanguageDefault": "en",
    "Currency": "EUR",
    "HostCustomer": "my-domain-name-eur.proabono.com",
    "HostAgent": "my-domain-name-eur.via.proabono.com",
    "Links": [
        {
            "rel": "related-dashboard",
            "href": "https://my-domain-name-eur.via.proabono.com"
        },
        {
            "rel": "hosted-collection-offers",
            "href": "https://my-domain-name-eur.proabono.com/pricing"
        },
        {
            "rel": "related-business",
            "href": "/Organization/Businesses/2"
        },
        {
            "rel": "related-settings-invoice",
            "href": "/Organization/BusinessAddressBillings/2"
        },
        {
            "rel": "related-settings",
            "href": "/Organization/Segments/84/Settings"
        },
        {
            "rel": "related-settings-redirection",
            "href": "/Organization/Segments/84/SettingsRedirection"
        },
        {
            "rel": "related-settings-payment",
            "href": "/Organization/Segments/84/SettingsPayment"
        },
        {
            "rel": "collection-agent",
            "href": "/Distribution/Agents?idSegment=84"
        },
        {
            "rel": "collection-customer",
            "href": "/Distribution/Customers?idSegment=84"
        },
        {
            "rel": "collection-offer",
            "href": "/Sub/Offers?idSegment=84"
        }
    ]
}
Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the segment to be retrieved. Integer
Returns

Update Main Settings

Definition
PATCH https://via.proabono.com/Organization/Segments/{Id}
Example Request
PATCH https://via.proabono.com/Organization/Segments/84
{
    "IdBusiness": 2,
    "Name": "My site - WorldWide",
    "ReferenceSegment": "mysite-worldwide", 
    "LanguageDefault": "en",
    "Currency": "USD",
    "StateLife": "Ok",
    "HostCustomer": "my-new-domain-name.proabono.com",
    "HostAgent": "my-new-domain-name.via.proabono.com"
}

Update the main settings of a Segment : Name, Reference, Default Language, Domain names of your backoffice and Hosted pages.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Name Yes Name of the Segment String
ReferenceSegment Yes Reference of the Segment String
LanguageDefault Yes Default Language of the segment String Language
StateLife Yes State of the segment StateLife
HostCustomer Yes Full domain name of your customer hosted pages
(Must be {domain-you-want}.proabono.com)
String
HostAgent Yes Full domain name where an agent can log in the backoffice
(Must be {other-domain-you-want}.via.proabono.com)
String
Returns

Update Advanced Settings

Definition
PATCH https://via.proabono.com/Organization/Segments/{Id}/Settings
Example Request
PATCH https://via.proabono.com/Organization/Segments/84/Settings
{
    "IdBusiness": 2,
    "Url": "http://my-own-website.com",
    "UrlLogo": "https://my-own-website.com/images/logo.png",
    "UrlTerms": "http://my-own-website.com/terms/",
    "EmailSupport": "contact@my-own-website.com",
    "PhoneSupport": "(+33)1 23 45 67 89",
    "UrlSupport": "https://support.my-own-website.com/" 
}

Update/Set advanced settings of a Segment

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Url No Url of your website/service String
UrlLogo No Url of your logo. The logo will be used in the backoffice and in all invoices. Must be https. String
UrlTerms No Url of the page of your terms and conditions String
EmailSupport No Email Address of the customer support of your website/service. Its email address will be used into your invoices, hosted pages and email notifications. String
PhoneSupport No Phone number of your support. . This URL will be displayed in invoices and hosted pages. String
UrlSupport No Url of the page of your support, documentation, helpdesk. This URL will be displayed in invoices and hosted pages. String
Returns

Update Redirection Settings

Definition
PATCH https://via.proabono.com/Organization/Segments/{Id}/SettingsRedirection
Example Request
PATCH https://via.proabono.com/Organization/Segments/84/SettingsRedirection
{
    "IdBusiness": 2,
    "UrlOffersAnonymous": "https://my-own-website.com/redirect/?status=UrlOffersAnonymous",
    "UrlOffersUpgrade": "https://my-own-website.com/redirect/?status=UrlOffersUpgrade",
    "UrlPaymentSuccess": "https://my-own-website.com/redirect/?status=UrlPaymentSuccess",
    "UrlPaymentCancel": "https://my-own-website.com/redirect/?status=UrlPaymentCancel",
    "UrlGenericError": "https://my-own-website.com/redirect/?status=UrlGenericError"
}

Update/Set redirection settings of a Segment.

For each segment, a dedicated hosted pages environment is provided.

On these pages, some events can occcured.

If you don't want to use all the ProAbono hosted pages, override them with pages in your application.

URL redirection let you customize the subscription and upgrade workflows, and handle the access to the Hosted Pages by your customers.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
UrlOffersAnonymous No Replace the offers page in anonymous mode. Usage : prevent access on the ProAbono auto-generated offers page. String
UrlOffersAnonymousSelection No Redirect when the user clicks the 'Choose' button in the offers page in anonymous mode. Automatically appends the selected Offer reference in the URL parameters. String
UrlOffersAuthenticated No Replace the offers page in authenticated mode. Usage : prevent access on the ProAbono auto-generated offers page. String
UrlOffersUpgrade No Replace the offers page when customer wants to change its current offer. Usage : prevent access on the ProAbono auto-generated offers page. String
UrlOneclickFreeOffer No Replace the success page when a customer successfully subscribe to a free offer without payment information registration. String
UrlOneclickExtraSubscription No Replace the success page when a customer successfully subscribe to an extra subscription without payment information registration. String
UrlOneclickUpgrade No Replace the success page when a customer successfully change its current offer without payment information registration. String
UrlPaymentSuccess No Replace the success page when an immediate payment succeeded. Ex: payment card. Defered payments (like direct debit) use the 'Payment : pending' redirection. String
UrlPaymentPending No Replace the success page when a payment order has been successfully requested and is waiting for a confirmation. Ex: direct debit. String
UrlPaymentCancel No Replace the success page when an immediate payment is cancelled. Rarely used, contact your account manager to know more. String
UrlPaymentFailure No Replace the failure page when a payment cannot be further processed. Does not concern the customer entry problems or rejected transactions. Rarely used, contact your account manager to know more. String
UrlPermissionRegistered No Replace the success page when payment information has been successfully registered, but no payment occured. String
UrlPermissionRegistrationFailure No Replace the failure page payment information registration failed. Does not concern the customer entry problems or rejected transactions. Rarely used, contact your account manager to know more. String
UrlPermissionUpdated No Replace the success page when payment information has been successfully updated, and no payment occured. String
UrlPermissionUpdateFailure No Replace the failure page payment information update failed. Does not concern the customer entry problems or rejected transactions. Rarely used, contact your account manager to know more. String
UrlGenericError No When a generic error occured in the hosted pages. Won't happen if you configured everything correctly, but who knows...
Returns

Update Payment Settings

Definition
PATCH https://via.proabono.com/Organization/Segments/{Id}/SettingsPayment
Example Request
PATCH https://via.proabono.com/Organization/Segments/84/SettingsPayment
{
    "IdBusiness": 2,
    "CanStartWithInvoiceBilling": true,
    "CanRenewWithInvoiceBilling": true,
    "CappingInvoiceBillingDays": 60,
    "CappingInvoiceBillingAmount": 75000,   
    "IdGatewayAccountForCard": 21,
    "IdGatewayAccountForDirectDebit": 22
}

Update/Set payment settings of a Segment.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
CanStartWithInvoiceBilling Yes A Subscription can start and be enabled with a successful payment BUT also with an invoice which will be later by the customer. Boolean
CanRenewWithInvoiceBilling Yes A Subscription can be renewed with a successful payment BUT also with an invoice which will be later by the customer. Boolean
CappingInvoiceBillingDays No Block renewal if payments due for more than X days. Integer
CappingInvoiceBillingAmount No Block renewal if payments due exceed an amount in cents. Integer
IdGatewayAccountForCard No Id of the Gateway Account used for payment with debit/credit card. Integer - See GatewayAccount
IdGatewayAccountForDirectDebit No Id of the Gateway Account used for payment with DirectDebit. Integer - See GatewayAccount

 

Returns

Update HostedPages Settings

Definition
PATCH https://via.proabono.com/Organization/Segments/{Id}/SettingsHostedPages
Example Request
PATCH https://via.proabono.com/Organization/Segments/84/SettingsHostedPages
{
    "IdBusiness": 2,
    "CanSubscribeAnonymous": false,
    "IsRequiringPaymentInfoWhenFree": false,
    "IsRequiringPaymentInfoWhenUpdated": false,     
    "IsRequiringAddressBilling": true,
    "IsRequiringAddressShipping": false,
    "CanCustomerUpgrade": false,
    "CanCustomerTerminate": false,
    "IsIframeClosedAfterSubscribe": true,   
    "IsOffersAnonymousLinkTargetParent": true
}

Update/Set hostedpages settings of a Segment.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IsOffersAnonymousLinkTargetParent Yes If True, it automatically closes the iframe when a user select an offer in anonymous mode (by adding a target=_parent attribute to the links). Boolean
CanSubscribeAnonymous Yes If True, it lets users subscribe even if they are not declared as Customers in ProAbono. Not recommanded if you want to associate an subscription with a user account in your application. Contact your account manager to know more. Boolean
IsRequiringAddressBilling Yes If True, it requires billing address. If required, ask the customer for its billing address when subscribing in the hosted pages. Boolean
IsRequiringPaymentInfoWhenFree Yes If True, it asks the authenticated customer for its payment information even if no amount is charged. Boolean
IsRequiringPaymentInfoWhenUpdated Yes If True, it asks the authenticated customer for its payment information before accessing the 'Update my options' section. Boolean
IsIframeClosedAfterSubscribe Yes If True, it automatically closes the iframe after a successful subscription or upgrade. Boolean
CanCustomerUpgrade Yes If True, it displays the 'Upgrade' button in the hosted pages so the customer can upgrade on its own. Boolean
CanCustomerTerminate Yes If True, it displays the 'Terminate' button in the hosted pages so the customer can terminate on its own. Boolean

 

Returns

 

List Segments

Definition
GET https://via.proabono.com/Organization/Segments/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Organization/Segments/?IdBusiness=2

Get the collection of Segments (filtered or not).

Querystring Parameters

 

Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
DateCreationMin No List all Segments created after the date Datetime
DateCreationMax No List all Segments created before the date Datetime
DateUpdateMin No List all Segments update after the date Datetime
DateUpdateMax No List all Segments updated before the date Datetime
StateLife No List all Segments with a specific StateLife StateLife
LanguageDefault No List all Segments declared with a specific default language Language
ReferenceSegment No List of 1 Segment if the reference is related to a known Segment String
Currency No List all Segments with a specific Currency Currency

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

Example:

GET /Organization/Segments/?IdBusiness=2&Currency=EUR

Returns

API Backoffice - Businesses

Business stands for your business (or your website, your application...).

A Business contains at least one segment of customers.

Business Resource

Property Description Type
Id Id of the Business Object Integer
Name Name of the Business String
StateLife State of the Business StateLife
LanguageDefault Default language of the Business String Language
Links Useful links concerning the Business -

See Object Convention

Create a Business

Definition
POST https://via.proabono.com/Organization/Businesses
Example Request
POST https://via.proabono.com/Organization/Businesses
{
    "Name": "My Service",
    "LanguageDefault": "en"
}
Example Response
{
    "Id": 2,
    "DateUpdate": "2023-07-08T21:18:53.66Z",
    "IdUserUpdate": 52,
    "DateCreation": "2023-07-08T21:18:53.66Z",
    "IdUserCreation": 52,
    "StateLife": "Ok",
    "Name": "Sandbox Inc.",
    "LanguageDefault": "en",
    "Links": [
        {
            "rel": "collection-agent",
            "href": "/Distribution/Agents?idBusiness=2"
        },
        {
            "rel": "collection-segment",
            "href": "/Organization/Segments?idBusiness=2"
        },
        {
            "rel": "related-address-billing",
            "href": "/Organization/Businesses/2/AddressBilling"
        },
        {
            "rel": "related-settings-invoice",
            "href": "/Organization/Businesses/2/SettingsInvoice"
        }
    ]
}

Create/Declare a new Business in ProAbono.

Request Parameters
Parameter Required? Description Type
Name Yes Name of the Business String
LanguageDefault Yes Default Language of the Business String Language
Returns

Retrieve a Business

Definition
GET https://via.proabono.com/Organization/Businesses/{Id}
Example Request
GET https://via.proabono.com/Organization/Businesses/2
Example Response
{
    "Id": 2,
    "DateUpdate": "2023-07-08T21:18:53.66Z",
    "IdUserUpdate": 52,
    "DateCreation": "2023-07-08T21:18:53.66Z",
    "IdUserCreation": 52,
    "StateLife": "Ok",
    "Name": "Sandbox Inc.",
    "LanguageDefault": "en",
    "Links": [
        {
            "rel": "collection-agent",
            "href": "/Distribution/Agents?idBusiness=2"
        },
        {
            "rel": "collection-segment",
            "href": "/Organization/Segments?idBusiness=2"
        },
        {
            "rel": "related-address-billing",
            "href": "/Organization/Businesses/2/AddressBilling"
        },
        {
            "rel": "related-settings-invoice",
            "href": "/Organization/Businesses/2/SettingsInvoice"
        }
    ]
}

Retrieve a Business by id

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Business to be retrieved. Integer
Returns

Update Basic Settings

Definition
PATCH https://via.proabono.com/Organization/Businesses/{Id}
Example Request
PATCH https://via.proabono.com/Organization/Businesses/2/
{
  "StateLife": "Ok",
  "Name": "Sandbox Inc",
  "LanguageDefault": "fr"
}

Update/Set Basic settings of a Business

Request Parameters
Parameter Required? Description Type
Id Yes Id of the Business Integer
Name Yes Name of the Business String
LanguageDefault Yes Default language of the Business String Language
StateLife Yes State of the Business StateLife
Returns

Update Billing Address

Definition
PATCH https://via.proabono.com/Organization/Businesses/{Id}/AddressBilling
Example Request
PATCH https://via.proabono.com/Organization/Businesses/2/AddressBilling
{
    "Company": "Sandbox Inc",
    "AddressLine1": "100 ave. Champs Elysees",
    "AddressLine2": "2nd Floor",
    "ZipCode": "75008",
    "City": "Paris",
    "Country": "FR",
    "Region": "FR-75",
    "TaxInformation": "FR1234567890",
    "Phone":"1234567890"
}

Update/Set Billing Address of a Business

Request Parameters
Parameter Required? Description Type
Id Yes Id of the Business Integer
Company No Name of the Campany which bills customers via ProAbono. String
FirstName No Can be a person, a departure, a division. String
LastName No Can be a person, a departure, a division. String
AddressLine1 No Line 1 of the Address of the Company String
AddressLine2 No Line 2 of the Address of the Company String
ZipCode No ZipCode of the Address of the Company String
City No City of the Address of the Company String
Country No Country of the Address of the Company CountryCode
Region No Region/State of the Address of the Company RegionCode
TaxInformation No VAT/TAX information/id of the Company String
Phone No Phone number of the Company String
Returns

Update Invoice Settings

Definition
PATCH https://via.proabono.com/Organization/Businesses/{Id}/SettingsInvoice
Example Request
PATCH https://via.proabono.com/Organization/Businesses/2/SettingsInvoice
{
  "LanguageForced": "fr",
  "TypeProrataOnUpgrade": "Balanced",
  "TypeProrataOnDowngrade": "Balanced",
  "TypeProrataOnTermination": "Ignored",
  "IdTaxProfile1": 2,
  "IdTaxProfile2": 3  
}

Update/Set Invoice settings of a Business

Request Parameters
Parameter Required? Description Type
Id Yes Id of the Business Integer
LanguageForced No Language of the invoices. If LanguageForced is set, all invoices will be created in this language. String Language
TypeProrataOnUpgrade No Type of Prorata on Upgrade TypeProrata
TypeProrataOnDowngrade No Type of Prorata on Upgrade TypeProrata
TypeProrataOnTermination No Type of Prorata on Upgrade TypeProrata
IdTaxProfile1 No Id of the first TaxProfile which describes how a Tax can be applied to your Business, Offers, Features and CustomerMoves. Integer
IdTaxProfile2 No Id of the second TaxProfile which describes how a Tax can be applied to your Business, Offers, Features and CustomerMoves. Integer
Returns

List Businesses

Definition
GET https://via.proabono.com/Organization/Businesses
Example Request
GET https://via.proabono.com/Organization/Businesses
Example Response
{
    "Page": 1,
    "SizePage": 25,
    "Count": 3,
    "TotalItems": 3,
    "DateGenerated": "2023-04-26T20:20:01.95Z",
    "Items": [
        {
            "Id": 1221,
            "DateUpdate": "2023-04-26T19:27:39.90Z",
            "IdUserUpdate": 69719,
            "DateCreation": "2023-04-26T19:27:39.90Z",
            "IdUserCreation": 69719,
            "StateLife": "Ok",
            "Name": "Microsoft Azure",
            "LanguageDefault": "en",
            "Links": [
                {
                    "rel": "collection-agent",
                    "href": "/Distribution/Agents?idBusiness=1221"
                },
                {
                    "rel": "collection-segment",
                    "href": "/Organization/Segments?idBusiness=1221"
                },
                {
                    "rel": "related-address-billing",
                    "href": "/Organization/Businesses/1221/AddressBilling"
                },
                {
                    "rel": "related-settings-invoice",
                    "href": "/Organization/Businesses/1221/SettingsInvoice"
                }
            ]
        },
        {
            "Id": 1219,
            "DateUpdate": "2023-04-26T12:18:45.53Z",
            "IdUserUpdate": 69719,
            "DateCreation": "2023-04-26T12:18:45.53Z",
            "IdUserCreation": 69719,
            "StateLife": "Ok",
            "Name": "Microsoft Office 365",
            "LanguageDefault": "fr",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Organization/Businesses/1219"
                },
                {
                    "rel": "collection-agent",
                    "href": "/Distribution/Agents?idBusiness=1219"
                },
                {
                    "rel": "collection-segment",
                    "href": "/Organization/Segments?idBusiness=1219"
                },
                {
                    "rel": "related-address-billing",
                    "href": "/Organization/Businesses/1219/AddressBilling"
                },
                {
                    "rel": "related-settings-invoice",
                    "href": "/Organization/Businesses/1219/SettingsInvoice"
                }
            ]
        },
        {
            "Id": 1215,
            "DateUpdate": "2023-04-25T10:29:28.93Z",
            "IdUserUpdate": 69719,
            "DateCreation": "2023-04-25T10:29:28.93Z",
            "IdUserCreation": 69719,
            "StateLife": "Ok",
            "Name": "Gmail for Business",
            "LanguageDefault": "fr",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Organization/Businesses/1215"
                },
                {
                    "rel": "collection-agent",
                    "href": "/Distribution/Agents?idBusiness=1215"
                },
                {
                    "rel": "collection-segment",
                    "href": "/Organization/Segments?idBusiness=1215"
                },
                {
                    "rel": "related-address-billing",
                    "href": "/Organization/Businesses/1215/AddressBilling"
                },
                {
                    "rel": "related-settings-invoice",
                    "href": "/Organization/Businesses/1215/SettingsInvoice"
                }
            ]
        }
    ]
}

Get the collection of Businesses (filtered or not).

Querystring Parameters
Parameter Required? Description Type
DateCreationMin No List all Businesses created after the date Datetime
DateCreationMax No List all Businesses created before the date Datetime
DateUpdateMin No List all Businesses update after the date Datetime
DateUpdateMax No List all Businesses updated before the date Datetime
StateLife No List all businesses with a specific StateLife StateLife

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

Example:

GET /Organization/Businesses/?StateLife=Ok&dateUpdateMin=2023-04-27T06:54:00

Returns

API Backoffice - Agents

Agents stands for Operators or users of ProAbono API, ProAbono backoffice.

Agent Resource

Property Description Type
Id Id of the Agent Integer
Name FullName of the Agent String
FirstName FirstName of the Agent String
Email Email of the Agent String
Key Agent Key of the Agent String
StateLife State of the Agent StateLife
Language Language of the Agent Language
Country Country of the Agent Country
UrlPicture Url of the picture which illustrates the Agent (Be Creative ;) ) String
Links Useful links concerning the Agent -

See Object Convention

Create a Agent

Definition
POST https://via.proabono.com/Distribution/Agents
Example Request
POST https://via.proabono.com/Distribution/Agents
{
    "IdBusiness": 2,
    "Email": "john@doe.com",
    "Name": "John Doe",
    "FirstName": "John",
    "Language": "en",
    "Country": "us"
}
Example Response
{
    "Id": 142212,
    "DateUpdate": "2023-04-27T08:14:52.86Z",
    "IdUserUpdate": 69719,
    "DateCreation": "2023-04-27T08:14:52.86Z",
    "IdUserCreation": 69719,
    "Key": "8039f881-a0fe-44e1-9488-c0b621705d4c",
    "StateLife": "ToModerate",
    "Email": "john@doe.com",
    "Name": "John Doe",
    "FirstName": "John",
    "Language": "en",
    "Country": "us",
    "Links": [
        {
            "rel": "self",
            "href": "/Distribution/Agents/142212"
        },
        {
            "rel": "access-organization",
            "href": "/Organization/AccessControl?idAgent=142212"
        },
        {
            "rel": "access-distribution",
            "href": "/Distribution/AccessControl?idAgent=142212"
        },
        {
            "rel": "access-sub",
            "href": "/Sub/AccessControl?idAgent=142212"
        },
        {
            "rel": "collection-business",
            "href": "/Organization/Businesses?idAgent=142212"
        },
        {
            "rel": "collection-segment",
            "href": "/Organization/Segments?idAgent=142212"
        }
    ]
}

Create/Declare an Agent in ProAbono.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Email Yes Email of the Agent Integer
Name Fullname of the Agent String
FirstName FirstName of the Agent String
Language Language of the Agent Language
Country Country of the Agent Country
UrlPicture No Url of the picture which illustrates the Agent (Be Creative ;) ) String
Returns

Retrieve an Agent

Definition
GET https://via.proabono.com/Distribution/Agents/{Id}
Example Request
GET https://via.proabono.com/Distribution/Agents/142212
Example Response
{
    "Id": 142212,
    "DateUpdate": "2023-04-27T08:14:52.86Z",
    "IdUserUpdate": 69719,
    "DateCreation": "2023-04-27T08:14:52.86Z",
    "IdUserCreation": 69719,
    "Key": "8039f881-a0fe-44e1-9488-c0b621705d4c",
    "StateLife": "ToModerate",
    "Email": "john@doe.com",
    "Name": "John Doe",
    "FirstName": "John",
    "Language": "en",
    "Country": "us",
    "Links": [
        {
            "rel": "access-organization",
            "href": "/Organization/AccessControl?idAgent=142212"
        },
        {
            "rel": "access-distribution",
            "href": "/Distribution/AccessControl?idAgent=142212"
        },
        {
            "rel": "access-sub",
            "href": "/Sub/AccessControl?idAgent=142212"
        },
        {
            "rel": "collection-business",
            "href": "/Organization/Businesses?idAgent=142212"
        },
        {
            "rel": "collection-segment",
            "href": "/Organization/Segments?idAgent=142212"
        }
    ]
}
Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the agent to be retrieved. Integer
Returns

Update a Agent

Definition
PATCH https://via.proabono.com/Distribution/Agents/
Example Request
PATCH https://via.proabono.com/Distribution/Agents/
{
    "Id": 142212,
    "IdBusiness": 2,    
    "Name": "John Senior Doe",
    "FirstName": "John Senior",
    "Email": "john-sr@doe.com",
    "UrlPicture": "http://png.findicons.com/files/icons/1072/face_avatars/300/f01.png",
    "Language": "en",
    "Country": "us"
}

Request Parameters
Parameter Required? Description Type
Id Yes Id of the Agent Integer
IdBusiness Yes Id of your Business Integer
Email Yes Email of your Agent String
Name No Fullname of your Agent String
FirstName No FirstName of the Agent String
Language No Language of the Agent String Language
Country No Country of the Agent Country
UrlPicture No Url of the picture which illustrates the Agent (Be Creative ;) ) String
Returns

Delete a Agent

Definition
DELETE https://via.proabono.com/Distribution/Agents/{Id}
Example Request
DELETE https://via.proabono.com/Distribution/Agents/123456
Example Response
{
    "Status": 200,
    "Message": "Ok"
}
Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the agent to be deleted. Integer
Returns

 

List Agents

Definition
GET https://via.proabono.com/Organization/Agents/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Organization/Agents/?IdBusiness=2

Get the collection of Agents (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes List all Agents related to the same Business Integer
DateCreationMin No List all Agents created after the date Datetime
DateCreationMax No List all Agents created before the date Datetime
DateUpdateMin No List all Agents update after the date Datetime
DateUpdateMax No List all Agents updated before the date Datetime
StateLife No List all Agents with a specific StateLife StateLife
Email No List all Agents related to the same Email Address String
Name No List all Agents related to the same Name or a portion of the Name String
Language No List all Agents declared with a specific language Language

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

Example:

GET /Organization/Agents/?StateLife=Ok&IdBusiness=2

Returns

API Backoffice - Webhooks

A WebHook is an HTTP callback. When an event occurs, a Webhook Notification is posted to the callback url.

Webhook Resource

Property Description Type
Id Id of the Webhook Object Integer
IdBusiness Id of the Business Object Integer
StateLife State of the Webhook StateLife
Url Url used by ProAbono to send webhook notifications String
Triggers Collection of triggers TypeTrigger
Links Useful links concerning the Webhook See below.

See Object Convention

Collection of links

Rel Description
collection-webhook-notification Collection of WebhookNotifications related to the Webhook.

Create a Webhook

Definition
POST https://via.proabono.com/Notification/Webhooks
Example Request
POST https://via.proabono.com/Notification/Webhooks
{
    "IdBusiness": 2,
    "Url": "https://test.com",
    "Triggers": [
        "CustomerAdded",
        "SubscriptionStarted",
        "SubscriptionTerminatedAtRenewal"
      ]

}
Example Response
{
    "Id": 42,
    "DateUpdate": "2023-04-03T09:45:03.79Z",
    "IdUserUpdate": 42,
    "IdBusiness": 2,
    "DateCreation": "2023-04-03T09:45:03.79Z",
    "IdUserCreation": 42,
    "StateLife": "Ok",
    "Url": "https://test.com",
    "Triggers": [
        "CustomerAdded",
        "SubscriptionStarted",
        "SubscriptionTerminatedAtRenewal"
    ],
    "Links": [
        {
            "rel": "collection-webhook-notification",
            "href": "/Notification/WebhookNotifications?idWebhook=42"
        }
    ]
}

Create/Declare a new webhook in ProAbono.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of the Business Integer
Url Yes UUrl used by ProAbono to send webhook notifications String
Triggers Yes Collection of triggers TypeTrigger
Returns

Retrieve a Webhook

Definition
GET https://via.proabono.com/Notification/Webhooks/{Id}
Example Request
GET https://via.proabono.com/Notification/Webhooks/42
Example Response
{
    "Id": 42,
    "DateUpdate": "2023-04-03T09:45:03.79Z",
    "IdUserUpdate": 42,
    "IdBusiness": 2,
    "DateCreation": "2023-04-03T09:45:03.79Z",
    "IdUserCreation": 42,
    "StateLife": "Ok",
    "Url": "https://test.com",
    "Triggers": [
        "CustomerAdded",
        "SubscriptionStarted",
        "SubscriptionTerminatedAtRenewal"
    ],
    "Links": [
        {
            "rel": "collection-webhook-notification",
            "href": "/Notification/WebhookNotifications?idWebhook=42"
        }
    ]
}

Retrieve a Webhook by id

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Webhook to be retrieved. Integer
Returns

Enable a Webhook

Definition
POST https://via.proabono.com/Notification/Webhooks/{Id}/Enable
Example Request
POST https://via.proabono.com/Notification/Webhooks/{42}/Enable
Example Response
{
    "Id": 42,
    "DateUpdate": "2023-04-03T09:46:03.79Z",
    "IdUserUpdate": 42,
    "IdBusiness": 2,
    "DateCreation": "2023-04-03T09:45:03.79Z",
    "IdUserCreation": 42,
    "StateLife": "Ok",
    "Url": "https://test.com",
    "Triggers": [
        "CustomerAdded",
        "SubscriptionStarted",
        "SubscriptionTerminatedAtRenewal"
    ],
    "Links": [
        {
            "rel": "collection-webhook-notification",
            "href": "/Notification/WebhookNotifications?idWebhook=42"
        }
    ]
}

Enable a Webhook. Webhook Notification start to be is posted to the callback url according to the selected triggers.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Webhook to enable. Integer
Returns

Disable a Webhook

Definition
POST https://via.proabono.com/Notification/Webhooks/{Id}/Disable
Example Request
POST https://via.proabono.com/Notification/Webhooks/{42}/Disable
Example Response
{
    "Id": 42,
    "DateUpdate": "2023-04-03T09:46:03.79Z",
    "IdUserUpdate": 42,
    "IdBusiness": 2,
    "DateCreation": "2023-04-03T09:45:03.79Z",
    "IdUserCreation": 42,
    "StateLife": "DisabledUser",
    "Url": "https://test.com",
    "Triggers": [
        "CustomerAdded",
        "SubscriptionStarted",
        "SubscriptionTerminatedAtRenewal"
    ],
    "Links": [
        {
            "rel": "collection-webhook-notification",
            "href": "/Notification/WebhookNotifications?idWebhook=42"
        }
    ]
}

Disable a Webhook. No more Webhook Notification will be posted to the callback url from this Webhook.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Webhook to disable. Integer
Returns

List Webhooks

Definition
GET https://via.proabono.com/Notification/Webhooks?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Notification/Webhooks?IdBusiness=2
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 1,
    "TotalItems": 1,
    "DateGenerated": "2023-04-04T12:17:02.09Z",
    "Items": [
        {
            "Id": 42,
            "DateUpdate": "2023-04-03T09:45:03.79Z",
            "IdUserUpdate": 42,
            "IdBusiness": 2,
            "DateCreation": "2023-04-03T09:45:03.79Z",
            "IdUserCreation": 42,
            "StateLife": "Ok",
            "Url": "https://test.com",
            "Triggers": [
                "CustomerAdded",
                "SubscriptionStarted",
                "SubscriptionTerminatedAtRenewal"
            ],
            "Links": [
                {
                    "rel": "collection-webhook-notification",
                    "href": "/Notification/WebhookNotifications?idWebhook=42"
                }
            ]
        }
    ]
}

Get the collection of Webhooks (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
DateCreationMin No List all Webhooks created after the date Datetime
DateCreationMax No List all Webhooks created before the date Datetime
DateUpdateMin No List all Webhooks update after the date Datetime
DateUpdateMax No List all Webhooks updated before the date Datetime
StateLife No List all Webhooks with a specific StateLife StateLife

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

Example:

GET /Notifcation/Webhooks/?IdBusiness=2&StateLife=Ok&dateUpdateMin=2023-04-27T06:54:00

Returns

API Backoffice - Webhook Notifications

A WebHook Notification is an HTTP callback notification: an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST.

WebhookNotification Resource

Property Description Type
Id Id of the Webhook Object Integer
IdBusiness Id of the Business Object Integer
StateLife State of the Webhook StateLife
IdWebhook Id of the Webhook related to the Webhook Notification Integer
IdTrigger Id of the Trigger related to the Webhook Notification Integer
CountSendings Number of times the Webhook notification has been sent Integer
DateLatestSending Date of the last sending Datetime
StatusLatestSending Http Status of the last sending HttpStatus
Links Useful links concerning the Webhook NOotification See below.

See Object Convention

Collection of links

Rel Description
related-business Business related to the Webhook Notification.
related-webhook Webhook related to the Webhook Notification.
related-trigger Trigger related to the Webhook Notification.

Retrieve a Webhook Notification

Definition
GET https://via.proabono.com/Notification/WebhookNotifications/{Id}
Example Request
GET https://via.proabono.com/Notification/WebhookNotifications/42
Example Response
{
    "Id": 42,
    "DateUpdate": "2023-04-03T09:45:03.79Z",
    "IdUserUpdate": 42,
    "IdBusiness": 2,
    "DateCreation": "2023-04-03T09:45:03.79Z",
    "IdUserCreation": 42,
    "StateLife": "Ok",
    "IdWebhook": 176,
    "IdTrigger": 920821,
    "CountSendings": 1,
    "DateLatestSending": "2023-04-03T09:55:23.39Z",
    "StatusLatestSending": 200,
    "Links": [
        {
            "rel": "related-business",
            "href": "/Organization/Businesses/2"
        },
        {
            "rel": "related-webhook",
            "href": "/Notification/Webhooks/176"
        },
        {
            "rel": "related-trigger",
            "href": "/Notification/Triggers/920821"
        }
    ]
}

Retrieve a Webhook Notification by id

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Webhook Notification to be retrieved. Integer
Returns

List Webhook Notifications

Definition
GET https://via.proabono.com/Notification/WebhookNotifications?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Notification/WebhookNotifications?IdBusiness=2
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 1,
    "TotalItems": 1,
    "DateGenerated": "2023-04-04T12:17:02.09Z",
    "Items": [
        {
            "Id": 42,
            "DateUpdate": "2023-04-03T09:45:03.79Z",
            "IdUserUpdate": 42,
            "IdBusiness": 2,
            "DateCreation": "2023-04-03T09:45:03.79Z",
            "IdUserCreation": 42,
            "StateLife": "Ok",
            "IdWebhook": 176,
            "IdTrigger": 920821,
            "CountSendings": 1,
            "DateLatestSending": "2023-04-03T09:55:23.39Z",
            "StatusLatestSending": 200,
            "Links": [
                {
                    "rel": "self",
                    "href": "/Notification/WebhookNotifications/42"
                }
            ]
        }
    ]
}

Get the collection of Webhook Notifications (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IdSegment No Id of one of your Segment Integer
DateCreationMin No List all Webhook Notifications created after the date Datetime
DateCreationMax No List all Webhook Notifications created before the date Datetime
DateUpdateMin No List all Webhook Notifications update after the date Datetime
DateUpdateMax No List all Webhook Notifications updated before the date Datetime
StateLife No List all Webhook Notifications with a specific StateLife StateLife
IdWebhook No List all Webhook Notifications related to a specific IdWebhook Integer

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

Example:

GET /Notifcation/WebhookNotifications/?IdBusiness=2&dateUpdateMin=2023-04-27T06:54:00&IdWebhook=99

Returns

API Backoffice - Localizations (Segment)

Localizations stands for contents localized in ProAbono related to your Offers, Features and Customer Portal. There are 2 levels of localizations : Business and Segment.

ProAbono provides contents at the business level. These contents are used in any segments of a business.

Override a content at the business level if this content should be the same in all segments of the business.
Override a content at the segment level if this content should be like you provided oonly in one or several segments of your business.

Example - Let's say ProAbono displays currency USD instead of $ :

Localization (Segment) Resource

Property Description Type
IdSegment Id of the Segment Integer
Code Unique Key of the Localization in ProAbono String
TypeContent Type of the Content TypeContent
Language Language of the Content Languages
Content Content related to the Code String
LanguageFallback Fallback Language if not defined at the segment level Languages
ContentFallback Fallback Content if not defined at the segment level String

Add/Update a Localization (Segment)

Definition
POST https://via.proabono.com/HostedPages/LocalizationBySegments
Example Request
POST https://via.proabono.com/HostedPages/LocalizationBySegments
{
    "IdSegment": 3,
    "Code": "Action.MenuCustomer.Invoices",
    "TypeContent": "Html",
    "Language": "en",
    "Content": "Your invoices"
}
Example Response
{
    "IdSegment": 3,
    "Code": "Action.MenuCustomer.Invoices",
    "TypeContent": "Html",
    "Language": "en",
    "Content": "Your invoices"
}

Add/Update a Localization (Segment) in ProAbono.

Request Parameters
Parameter Required? Description Type
IdSegment Yes Id of the Segment Integer
Code Yes Unique Key of the Localization in ProAbono String
TypeContent Yes Type of the Content TypeContent
Language Yes Language of the Content Languages
Content Yes Content related to the Code String
Returns

List Localizations (Segment)

Definition
GET https://via.proabono.com/HostedPages/LocalizationBySegments/?IdSegment={YourIdSegment}
Example Request
GET https://via.proabono.com/HostedPages/LocalizationBySegments/?IdSegment=3
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 3,
  "TotalItems": 3,
  "DateGenerated": "2023-05-05T09:36:59.43Z",
  "Items": [
    {
      "IdSegment": 3,
      "Code": "Feature.Title.492",
      "TypeContent": "String",
      "Language": "en",
      "Content": "Users"
    },
    {
      "IdSegment": 3,
      "Code": "Action.Subscription.Upgrade",
      "TypeContent": "Html",
      "Language": "en",
      "LanguageFallback": "en",
      "ContentFallback": "Change your subscription"
    },
    {
      "IdSegment": 3,
      "Code": "Action.MenuCustomer.Invoices",
      "TypeContent": "Html",
      "Language": "en",
      "Content": "Your invoices"
    }
  ]
}

Get the collection of Localizations (Segment) (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdSegment Yes Id of the Segment Integer
Language No List all Localizations (Segment) by language String
IsCustom No List all Localizations (Segment) which are customized in the segment Boolean
Content No List all Localizations (Segment) which contain a part specified content String
Code No List all Localizations (Segment) which contain a part specified code String

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

Example:

GET /HostedPages/LocalizationBySegments/?IdSegment=3&language=fr&iscustom=true&content=users

Returns

API Backoffice - Localizations (Business)

Localizations stands for contents localized in ProAbono related to your Offers, Features and Customer Portal. There are 2 levels of localizations : Business and Segment.

ProAbono provides contents at the business level. These contents are used in any segments of a business.

Override a content at the business level if this content should be the same in all segments of the business.
Override a content at the segment level if this content should be like you provided oonly in one or several segments of your business.

Example - Let's say ProAbono displays currency USD instead of $ :

Localization (Business) Resource

Property Description Type
IdBusiness Id of the Business Integer
Code Unique Key of the Localization in ProAbono String
TypeContent Type of the Content TypeContent
Language Language of the Content Languages
Content Content related to the Code String

Add/Update a Localization (Business)

Definition
POST https://via.proabono.com/HostedPages/LocalizationByBusinesses
Example Request
POST https://via.proabono.com/HostedPages/LocalizationByBusinesses
{
    "IdBusiness":2,
    "Code": "Action.MenuCustomer.Invoices",
    "TypeContent": "Html",
    "Language": "en",
    "Content": "Your invoices"
}
Example Response
{
    "IdBusiness":2,
    "Code": "Action.MenuCustomer.Invoices",
    "TypeContent": "Html",
    "Language": "en",
    "Content": "Your invoices"
}

Add/Update a Localization (Business) in ProAbono.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Code Yes Unique Key of the Localization in ProAbono String
TypeContent Yes Type of the Content TypeContent
Language Yes Language of the Content Languages
Content Yes Content related to the Code String
Returns

List Localizations (Business)

Definition
GET https://via.proabono.com/HostedPages/LocalizationByBusinesses/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/HostedPages/LocalizationByBusinesses/?IdBusiness=2
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 3,
  "TotalItems": 3,
  "DateGenerated": "2023-05-05T09:36:59.43Z",
  "Items": [
    {
      "IdBusiness":2,
      "Code": "Feature.Title.492",
      "TypeContent": "String",
      "Language": "en",
      "Content": "Users"
    },
    {
      "IdBusiness":2,
      "Code": "Action.Subscription.Upgrade",
      "TypeContent": "Html",
      "Language": "en",
      "Content": "Change your subscription"
    },
    {
      "IdBusiness":2,
      "Code": "Action.MenuCustomer.Invoices",
      "TypeContent": "Html",
      "Language": "en",
      "Content": "Your invoices"
    }
  ]
}

Get the collection of Localizations (Business) (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Language No List all Localizations (Business) by language String
IsCustom No List all Localizations (Business) which are customized in the segment Boolean
Content No List all Localizations (Business) which contain a part specified content String
Code No List all Localizations (Business) which contain a part specified code String

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

Example:

GET /HostedPages/LocalizationByBusinesses/?IdBusiness=2&language=fr&iscustom=true&content=users

Returns

API Backoffice - Gateway Accounts

GatewayAccount Resource

A GatewayAccount defines all parameters and credentials needed of a valid account of a Payment Gateway Provider/Solution (Stripe, Paybox, ...).

Property Description Type
Id Id of the GatewayAccount Object Integer
Name Name of the GatewayAccount String
Currency Currency of the GatewayAccount String Currency
IsInRealMoney Playing with real money is for Big boys ;) Boolean
TypeGateway Type of the GatewayAccount TypeGateway
StateAccount State of the GatewayAccount StateAccount
"ExtraResource" This resource contains Credentials of your Payment Gateway and the name of this ExtraResource depends on the chosen payment gateway. See Payment Gateway Extra

See Object Convention

Create a GatewayAccount

Definition
POST https://via.proabono.com/Gateway/GatewayAccounts
Example Request
POST https://via.proabono.com/Gateway/GatewayAccounts
{
    "IdBusiness": 2,
    "TypeGateway": "CardStripe",
    "Currency": "EUR",
    "Name": "My Gateway Account #1",
    "IsInRealMoney": false,
    "DataGateway": {
        "KeyPublic": "pk_test_Ga9qnjxLiew2c_fake",
        "KeySecret": "sk_test_UbhQ41NtXxDgW_fake"
    }   
}
Example Response
{
    "Id": 283,
    "DateCreation": "2023-06-26T13:08:42.46Z",
    "IdUserCreation": 69719,
    "DateUpdate": "2023-06-26T13:08:42.46Z",
    "IdUserUpdate": 69719,
    "IdBusiness": 2,
    "StateAccount": "Enabled",
    "Currency": "EUR",
    "Name": "My Gateway Account #1",
    "IsInRealMoney": false,
    "TypePayment": "Card",
    "TypeGateway": "CardStripe",
    "DataGateway": {
        "KeyPublic": "pk_test_Ga9qnjxLiew2c_fake",
        "KeySecret": "sk_test_UbhQ41NtXxDgW_fake"
    },
    "Links": [
        {
            "rel": "self",
            "href": "/Gateway/GatewayAccounts/283"
        },
        {
            "rel": "related-business",
            "href": "/Organization/Businesses/44"
        },
        {
            "rel": "collection-payment",
            "href": "/Finance/Payments?idGatewayAccount=283"
        },
        {
            "rel": "collection-invoicedebit",
            "href": "/Finance/Invoices?idGatewayAccount=283"
        },
        {
            "rel": "collection-actionprogrammed",
            "href": "/Finance/ActionProgrammeds?idGatewayAccount=283"
        },
        {
            "rel": "collection-gatewaypermission",
            "href": "/Gateway/GatewayPermissions?idGatewayAccount=283"
        },
        {
            "rel": "collection-gatewaytransaction",
            "href": "/Gateway/GatewayTransactions?idGatewayAccount=283"
        },
        {
            "rel": "collection-gatewayrequest",
            "href": "/Gateway/GatewayRequests?idGatewayAccount=283"
        }
    ]
}

Create/Declare a new Gateway Account in ProAbono.

Request Parameters
Parameter Required? Description Type
IdBusiness yes Id of Business in which the GatewayAccount has been created Integer
Name yes Name of the GatewayAccount String
Currency yes Currency of the GatewayAccount String Currency
TypeGateway yes Type of the GatewayAccount TypeGateway
IsInRealMoney yes Playing with real money is for Big boys ;) Boolean
"ExtraResource" yes This resource contains Credentials of your Payment Gateway and the name of this ExtraResource depends on the chosen payment gateway. See Payment Gateway Extra

There is no extra data needed for a "CardDummy" payment gateway account.

Returns

Retrieve a GatewayAccount

Definition
GET https://via.proabono.com/Gateway/GatewayAccounts/{Id}
Example Request
GET https://via.proabono.com/Gateway/GatewayAccounts/283
Example Response
{
    "Id": 283,
    "DateCreation": "2023-06-26T13:08:42.46Z",
    "IdUserCreation": 69719,
    "DateUpdate": "2023-06-26T13:08:42.46Z",
    "IdUserUpdate": 69719,
    "IdBusiness": 2,
    "StateAccount": "Enabled",
    "Currency": "EUR",
    "Name": "My Gateway Account #1",
    "IsInRealMoney": false,
    "TypePayment": "Card",
    "TypeGateway": "CardStripe",
    "DataGateway": {
        "KeyPublic": "pk_live_51JSeWzDjzldFDrTiggc69B0JklP2506LPpFTHvC8UvlC5M5Q",
        "KeySecret": "sk_live_51JSeWzDjzldFDrTiIvL04qWIG4pL12J4tQiN7gfqaI2Ynq8xhtQ"
    },
    "Links": [
        {
            "rel": "related-business",
            "href": "/Organization/Businesses/2"
        },
        {
            "rel": "collection-payment",
            "href": "/Finance/Payments?idGatewayAccount=283"
        },
        {
            "rel": "collection-invoicedebit",
            "href": "/Finance/Invoices?idGatewayAccount=283"
        },
        {
            "rel": "collection-actionprogrammed",
            "href": "/Finance/ActionProgrammeds?idGatewayAccount=283"
        },
        {
            "rel": "collection-gatewaypermission",
            "href": "/Gateway/GatewayPermissions?idGatewayAccount=283"
        },
        {
            "rel": "collection-gatewaytransaction",
            "href": "/Gateway/GatewayTransactions?idGatewayAccount=283"
        },
        {
            "rel": "collection-gatewayrequest",
            "href": "/Gateway/GatewayRequests?idGatewayAccount=283"
        }
    ]
}

Retrieve a GatewayAccount by id.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the GatewayAccount to be retrieved. Integer
Returns

Update a GatewayAccount

Definition
PATCH https://via.proabono.com/Gateway/GatewayAccounts/{Id}
Example Request
PATCH https://via.proabono.com/Gateway/GatewayAccounts/1245
{
    "IdBusiness": 2,
    "Name": "My Stripe Account",
    "BankStatement": BankStatementUpdated..............................
}

Update/Set settings of a GatewayAccount

Request Parameters
Parameter Required? Description Type
Name Yes Name of the GatewayAccount String
BankStatement No Label on the customer's bank statement String
IdBusiness Yes Id of your Business Integer
Returns

List GatewayAccounts

Definition
GET https://via.proabono.com/Gateway/GatewayAccounts?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Gateway/GatewayAccounts?IdBusiness=2
{
    "Page": 1,
    "SizePage": 10,
    "Count": 2,
    "TotalItems": 2,
    "DateGenerated": "2023-06-26T13:33:44.95Z",
    "Items": [
        {
            "Id": 283,
            "DateCreation": "2023-06-26T13:08:42.46Z",
            "IdUserCreation": 69719,
            "DateUpdate": "2023-06-26T13:17:33.20Z",
            "IdUserUpdate": 69719,
            "IdBusiness": 2,
            "StateAccount": "Enabled",
            "Currency": "USD",
            "Name": "My Stripe Account",
            "BankStatement": "BankStatement Data................................",
            "IsInRealMoney": true,
            "TypePayment": "Card",
            "TypeGateway": "CardStripe",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Gateway/GatewayAccounts/283"
                }
            ]
        },
        {
            "Id": 281,
            "DateCreation": "2023-06-02T12:23:02.74Z",
            "IdUserCreation": 6,
            "DateUpdate": "2023-06-02T12:23:02.74Z",
            "IdUserUpdate": 6,
            "IdBusiness": 2,
            "StateAccount": "Enabled",
            "Currency": "EUR",
            "Name": "My Dummy Gateway 1",
            "BankStatement": "BankStatement Data................................",
            "IsInRealMoney": false,
            "TypePayment": "Card",
            "TypeGateway": "CardDummy",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Gateway/GatewayAccounts/281"
                }
            ]
        }
    ]
}

Get the collection of GatewayAccounts (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
DateCreationMin No List all gateway accounts created after the date Datetime
DateCreationMax No List all gateway accounts created before the date Datetime
DateUpdateMin No List all gateway accounts updated after the date Datetime
DateUpdateMax No List all gateway accounts updated before the date Datetime
TypeGateway No List all gateway accounts with a specific TypeGateway TypeGateway
Currency No List all gateway accounts with a specific Currency Currency
IsInRealMoney No List all gateway accounts with a specific IsInRealMoney State Boolean
StateAccount No List all gateway accounts with a specific StateAccount StateAccount

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

Example:

GET /Gateway/GatewayAccounts/?IdBusiness=2&IsInRealMoney=true&Currency=USD&DateCreationMin=2023-07-27T13:54:00

Returns

 

API Backoffice - Gateway Permissions

Permission is the footprint of a bankcard, a direct debit mandate, or any other payment methods registered into a Payment Gateway.

GatewayPermission Resource

Property Description Type
Id Id of the Permission Object Integer
IdCustomer Id of the Customer related to this Permission Integer
IdAccount Id of the GatewayAccount used for this Permission Integer
TypeGateway Type of Gateway TypeGateway
TypePayment Type of TypePayment TypePayment
StatePermission State of the Permission StatePermission
Country Issuing country of the bank card String Country
DateExpiration Expiration Date of the Card Datetime
DateExpirationOnCard Expiration Date of the Card String
MaskNumber Mask of the Bank Card Number String
TypeCard Type of Card String
"ExtraResource" This resource contains Information of your Payment Permission and the name of this ExtraResource depends on the chosen payment gateway. See Payment Gateway Extra
Links Useful links concerning the Card Permission --

See Object Convention

Create a Card Permission

Definition
POST https://via.proabono.com/Gateway/GatewayPermissions
Example Request
POST https://via.proabono.com/Gateway/GatewayPermissions
{
    "IdBusiness": 2,
    "IdCustomer": 64946,
    "IdAccount": 20,
    "TypeGateway": "CardDummy",
    "DataGateway": {
    "StatusNextPayment": "Success"
  }
}
Example Response
{
    "Id": 120,
    "DateCreation": "2023-08-30T09:12:32.89Z",
    "IdUserCreation": 11,
    "DateUpdate": "2023-08-30T09:12:32.89Z",
    "IdUserUpdate": 11,
    "IdSegment": 1213,
    "StatePermission": "Enabled",
    "IdCustomer": 64946,
    "IdAccount": 20,
    "TypePayment": "Card",
    "TypeGateway": "CardDummy",
  "DataGateway": {
    "StatusNextPayment": "Success"
  },
    "Links": [
    {
      "rel": "self",
      "href": "/Gateway/GatewayPermissions/120"
    },
    {
      "rel": "related-customer",
      "href": "/Distribution/Customers/64946"
    },
    {
      "rel": "related-gatewayaccount",
      "href": "/Gateway/GatewayAccounts/20"
    },
    {
      "rel": "collection-payment",
      "href": "/Finance/Payments?idGatewayPermission=120"
    },
    {
      "rel": "collection-invoicedebit",
      "href": "/Finance/Invoices?idGatewayPermission=120"
    },
    {
      "rel": "collection-actionprogrammed",
      "href": "/Finance/ActionProgrammeds?idGatewayPermission=120"
    },
    {
      "rel": "collection-gatewaytransaction",
      "href": "/Gateway/GatewayTransactions?idGatewayPermission=120"
    },
    {
      "rel": "collection-gatewayrequest",
      "href": "/Gateway/GatewayRequests?idGatewayPermission=120"
    }
    ]
}

Create a Card Permission.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IdCustomer Yes Id of the Customer related to this Card Permission Integer
IdAccount Yes Id of the GatewayAccount used for this Card Permission Integer
TypeGateway Yes Type of Gateway TypeGateway
DataGateway No Special data of the gateway
Returns

Retrieve a Card Permission

Definition
GET https://via.proabono.com/Gateway/GatewayPermissions/{Id}
Example Request
GET https://via.proabono.com/Gateway/GatewayPermissions/25
Example Response
{
    "Id": 25,
    "DateCreation": "2023-07-27T13:22:53.33Z",
    "IdUserCreation": 149,
    "DateUpdate": "2023-07-27T13:22:53.33Z",
    "IdUserUpdate": 149,
    "IdSegment": 1213,
    "StatePermission": "Enabled",
    "IdCustomer": 64081,
    "IdAccount": 20,
    "TypePayment": "Card",
    "TypeGateway": "CardStripe",
    "DataGateway": {
    "KeyCustomer": "cus_GgbhVAKeL9YnWU"
  }
}

Retrieve a Card Permission by id.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Card Permission to be retrieved. Integer
Returns

List Card Permissions

Definition
GET https://via.proabono.com/Gateway/GatewayPermissions/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Gateway/GatewayPermissions/?IdBusiness=2
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 2,
  "TotalItems": 2,
  "DateGenerated": "2023-08-28T16:51:59.45Z",
  "Items": [
    {
      "Id": 118,
      "DateCreation": "2023-08-26T08:43:14.00Z",
      "IdUserCreation": 1097,
      "DateUpdate": "2023-08-26T08:43:14.00Z",
      "IdUserUpdate": 1097,
      "IdSegment": 1213,
      "StatePermission": "Enabled",
      "IdCustomer": 64944,
      "IdAccount": 22,
      "TypePayment": "Card",
      "TypeGateway": "CardStripe",
      "DataGateway": {
        "KeyCustomer": "cus_GgbhVAKeL9YnWU"
      },
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayPermissions/118"
        },
        {
          "rel": "related-customer",
          "href": "/Distribution/Customers/64944"
        },
        {
          "rel": "related-gatewayaccount",
          "href": "/Gateway/GatewayAccounts/22"
        },
        {
          "rel": "collection-payment",
          "href": "/Finance/Payments?idGatewayPermission=118"
        },
        {
          "rel": "collection-invoicedebit",
          "href": "/Finance/Invoices?idGatewayPermission=118"
        },
        {
          "rel": "collection-actionprogrammed",
          "href": "/Finance/ActionProgrammeds?idGatewayPermission=118"
        },
        {
          "rel": "collection-gatewaytransaction",
          "href": "/Gateway/GatewayTransactions?idGatewayPermission=118"
        },
        {
          "rel": "collection-gatewayrequest",
          "href": "/Gateway/GatewayRequests?idGatewayPermission=118"
        }
      ]
    },
    {
      "Id": 71,
      "DateCreation": "2023-08-20T07:28:50.62Z",
      "IdUserCreation": 955,
      "DateUpdate": "2023-08-20T07:28:50.62Z",
      "IdUserUpdate": 955,
      "IdSegment": 1213,
      "StatePermission": "Enabled",
      "IdCustomer": 64811,
      "IdAccount": 20,
      "TypePayment": "Card",
      "TypeGateway": "CardDummy",
      "DataGateway": {
        "StatusNextPayment": "Success"
      },
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayPermissions/71"
        },
        {
          "rel": "related-customer",
          "href": "/Distribution/Customers/64811"
        },
        {
          "rel": "related-gatewayaccount",
          "href": "/Gateway/GatewayAccounts/20"
        },
        {
          "rel": "collection-payment",
          "href": "/Finance/Payments?idGatewayPermission=71"
        },
        {
          "rel": "collection-invoicedebit",
          "href": "/Finance/Invoices?idGatewayPermission=71"
        },
        {
          "rel": "collection-actionprogrammed",
          "href": "/Finance/ActionProgrammeds?idGatewayPermission=71"
        },
        {
          "rel": "collection-gatewaytransaction",
          "href": "/Gateway/GatewayTransactions?idGatewayPermission=71"
        },
        {
          "rel": "collection-gatewayrequest",
          "href": "/Gateway/GatewayRequests?idGatewayPermission=71"
        }
      ]
    }
  ]
}

Get the collection of Card Permissions (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IdSegment No Id of one of your Segment Integer
DateCreationMin No List all Permissions created after the date Datetime
DateCreationMax No List all Permissions created before the date Datetime
DateUpdateMin No List all Permissions update after the date Datetime
DateUpdateMax No List all Permissions updated before the date Datetime
IdCustomer No List all Permissions of a Customer Integer
IdAccount No List all Permissions related to the same IdGatewayAccount Integer
TypeGateway No List all Permissions with a specific type of Gateway TypeGateway
TypePayment No List all Permissions with a specific type of Payment TypePayment
StatePermission No List all Permissions with a specific StatePermission StatePermission

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

Example:

GET /Gateway/GatewayPermissions/?IdBusiness=2&IdCustomer=64811&DateCreationMin=2023-07-27T13:54:00

Returns

GatewayPermission Resource

Property Description Type
Id Id of the Permission Object Integer
IdCustomer Id of the Customer related to this Permission Integer
IdAccount Id of the GatewayAccount used for this Permission Integer
TypeGateway Type of Gateway TypeGateway
TypePayment Type of TypePayment TypePayment
StatePermission State of the Permission StatePermission
Links Useful links concerning the Permission --

See Object Convention

Create a Mandate Permission

Definition
POST https://via.proabono.com/Gateway/GatewayPermissions
Example Request
POST https://via.proabono.com/Gateway/GatewayPermissions
{
    "IdBusiness": 2,
    "IdCustomer": 64946,
    "IdAccount": 20,
    "TypeGateway": "MandateDummy",
    "TypePayment": "Mandate",
    "Country": "US",
    "NameDisplay": "XXXX-XXXX-XXXX-1234"
}
Example Response
{
    "Id": 120,
    "DateUpdate": "2023-08-30T09:12:32.89Z",
    "IdUserUpdate": 11,
    "DateCreation": "2023-08-30T09:12:32.89Z",
    "IdUserCreation": 11,
    "StatePermission": "Enabled",
    "IdCustomer": 64946,
    "IdAccount": 20,
    "TypeGateway": "MandateDummy",
    "TypePayment": "Mandate",
    "Country": "US",
    "Links": [
        {
            "rel": "self",
            "href": "/Gateway/GatewayPermissions/120"
        }
    ]
}

Create a Mandate Permission.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IdCustomer Yes Id of the Customer related to this Mandate Permission Integer
IdAccount Yes Id of the GatewayAccount used for this Mandate Permission Integer
TypeGateway Yes Type of Gateway TypeGateway
TypePayment Yes Type of TypePayment TypePayment
Country No String Country
NameDisplay Yes Mask card displayed in backoffice and hosted portal
Returns

Retrieve a Mandate Permission

Definition
GET https://via.proabono.com/Gateway/GatewayPermissions/{Id}
Example Request
GET https://via.proabono.com/Gateway/GatewayPermissions/25
Example Response
{
    "Id": 25,
    "DateUpdate": "2023-07-27T13:22:53.33Z",
    "IdUserUpdate": 149,
    "DateCreation": "2023-07-27T13:22:53.33Z",
    "IdUserCreation": 149,
    "StatePermission": "Enabled",
    "IdCustomer": 64081,
    "IdAccount": 20,
    "TypeGateway": "MandateStripe",
    "TypePayment": "Mandate",
    "Country": "US"
}

Retrieve a Mandate Permission by id.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Mandate Permission to be retrieved. Integer
Returns

List Mandate Permissions

Definition
GET https://via.proabono.com/Gateway/GatewayPermissions/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Gateway/GatewayPermissions/?IdBusiness=2
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 2,
  "TotalItems": 2,
  "DateGenerated": "2023-08-28T16:51:59.45Z",
  "Items": [
    {
      "Id": 118,
      "DateUpdate": "2023-08-26T08:43:14.00Z",
      "IdUserUpdate": 1097,
      "DateCreation": "2023-08-26T08:43:14.00Z",
      "IdUserCreation": 1097,
      "StatePermission": "Enabled",
      "IdCustomer": 64944,
      "IdAccount": 22,
      "TypeGateway": "MandateStripe",
      "TypePayment": "Mandate",
      "Country": "FR",
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayPermissions/118"
        }
      ]
    },
    {
      "Id": 71,
      "DateUpdate": "2023-08-20T07:28:50.62Z",
      "IdUserUpdate": 955,
      "DateCreation": "2023-08-20T07:28:50.62Z",
      "IdUserCreation": 955,
      "StatePermission": "Enabled",
      "IdCustomer": 64811,
      "IdAccount": 20,
      "TypeGateway": "MandateDummy",
      "TypePayment": "Mandate",
      "Country": "FR",
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayPermissions/71"
        }
      ]
    }
  ]
}

Get the collection of Mandate Permissions (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IdSegment No Id of one of your Segment Integer
DateCreationMin No List all Permissions created after the date Datetime
DateCreationMax No List all Permissions created before the date Datetime
DateUpdateMin No List all Permissions update after the date Datetime
DateUpdateMax No List all Permissions updated before the date Datetime
IdCustomer No List all Permissions of a Customer Integer
IdAccount No List all Permissions related to the same IdGatewayAccount Integer
TypeGateway No List all Permissions with a specific type of Gateway TypeGateway
TypePayment No List all Permissions with a specific type of Payment TypePayment
StatePermission No List all Permissions with a specific StatePermission StatePermission

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

Example:

GET /Gateway/GatewayPermissions/?IdBusiness=2&IdCustomer=64811&DateCreationMin=2023-07-27T13:54:00

Returns

API Backoffice - Gateway Requests

Request refers to any requests made to a Payment Gateway.

GatewayRequest Resource

Property Description Type
Id Id of the Request Object Integer
IdCustomer Id of the Customer related to this Request Integer
IdAccount Id of the GatewayAccount used for this Request Integer
IdPermission Id of the GatewayPermission used for this Transaction Integer
TypeRequest Type of Request TypeGatewayRequest
Amount Amount of the Transaction in cents Integer
StatusRequest Status of the Request StatusGatewayRequest
StatusHttp Response Code of the Request Integer HTTP Status Code
Message Response Message of the Request String
ElapsedMilliseconds Duration in milliseconds to answer to the request Integer
Links Useful links concerning the Request --

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

See Object Convention

Retrieve a Request

Definition
GET https://via.proabono.com/Gateway/GatewayRequests/{Id}
Example Request
GET https://via.proabono.com/Gateway/GatewayRequests/68
Example Response
{
    "Id": 68,
    "DateCreation": "2023-08-20T07:28:52.91Z",
    "IdUserCreation": 955,
    "DateUpdate": "2023-08-20T07:28:52.91Z",
    "IdUserUpdate": 955,
    "IdSegment": 1215,
    "IdCustomer": 64811,
    "IdAccount": 20,
    "IdPermission": 71,
    "IdTransaction": 567875,
    "TypePayment": "DirectDebit",
    "TypeGateway": "DirectDebitDummySepa",
    "TypeRequest": "PermissionDebit",
    "Amount": 20000,
    "StatusRequest": "Success",
    "StatusHttp": 200,
    "Message": "Operation succeeded",
    "ElapsedMilliseconds": 46,
  "Links": [
    {
      "rel": "related-customer",
      "href": "/Distribution/Customers/64811"
    },
    {
      "rel": "related-gatewayaccount",
      "href": "/Gateway/GatewayAccounts/20"
    },
    {
      "rel": "related-gatewaypermission",
      "href": "/Gateway/GatewayPermissions/71"
    },
    {
      "rel": "related-gatewaytransaction",
      "href": "/Gateway/GatewayTransactions/567875"
    }
  ]
}

Retrieve a Request by id.

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

List Requests

Definition
GET https://via.proabono.com/Gateway/GatewayRequests/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Gateway/GatewayRequests/?IdBusiness=2
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 2,
  "TotalItems": 2,
  "DateGenerated": "2023-08-28T15:37:56.20Z",
  "Items": [
    {
      "Id": 68,
      "DateCreation": "2023-08-20T07:28:52.91Z",
      "IdUserCreation": 955,
      "DateUpdate": "2023-08-20T07:28:52.91Z",
      "IdUserUpdate": 955,
      "IdSegment": 1215,
      "IdCustomer": 64811,
      "IdAccount": 20,
      "IdPermission": 71,
      "IdTransaction": 567875,
      "TypePayment": "DirectDebit",
      "TypeGateway": "DirectDebitDummySepa",
      "TypeRequest": "PermissionDebit",
      "Amount": 20000,
      "StatusRequest": "Success",
      "StatusHttp": 200,
      "Message": "Operation succeeded",
      "ElapsedMilliseconds": 46,
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayRequests/68"
        }
      ]
    },
    {
      "Id": 67,
      "DateCreation": "2023-08-20T07:28:50.44Z",
      "IdUserCreation": 955,
      "DateUpdate": "2023-08-20T07:28:50.44Z",
      "IdUserUpdate": 955,
      "IdSegment": 1215,
      "IdCustomer": 64811,
      "IdAccount": 20,
      "IdPermission": 71,
      "IdTransaction": 567875,
      "TypePayment": "DirectDebit",
      "TypeGateway": "DirectDebitDummySepa",
      "TypeRequest": "PermissionRegister",
      "Amount": 20000,
      "StatusRequest": "Success",
      "StatusHttp": 200,
      "Message": "Operation succeeded",
      "ElapsedMilliseconds": 109,
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayRequests/67"
        }
      ]
    }
  ]
}

Get the collection of Requests (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IdSegment No Id of one of your Segment Integer
DateCreationMin No List all Requests created after the date Datetime
DateCreationMax No List all Requests created before the date Datetime
DateUpdateMin No List all Requests update after the date Datetime
DateUpdateMax No List all Requests updated before the date Datetime
IdCustomer No List all Requests of a Customer Integer
IdPermission No List all Requests made with the same IdPermission Integer
IdTransaction No List all Requests made with the same IdTransaction Integer
IdAccount No List all Requests made with the same IdGatewayAccount Integer
TypeRequest No List all Requests with a specific type of Request TypeRequest
StatusRequest No List all Requests with a specific type of StatusRequest StatusGatewayRequest
StatusHttpMin No List all Requests with StatusHttp equal or greater than StatusHttpMin HTTP Status Code
StatusHttpMax No List all Requests with StatusHttp equal or less than StatusHttpMax HTTP Status Code
AmountMin No List all Requests with Amount equal or greater than AmountMin Integer
AmountMax No List all Requests with Amount equal or less than AmountMax Integer
ElapsedMillisecondsMin No List all Requests with processing time equal or greater than ElapsedMillisecondsMin Integer
ElapsedMillisecondsMax No List all Requests with processing time equal or less than ElapsedMillisecondsMax Integer

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

Example:

GET /Gateway/GatewayRequests/?IdBusiness=2&IdCustomer=64811&DateCreationMin=2023-07-27T13:54:00

Returns

API Backoffice - Gateway Transactions

GatewayTransaction refers to any transactions made a Payment Gateway.

GatewayTransaction Resource

Property Description Type
Id Id of the Transaction Object Integer
IdCustomer Id of the Customer related to this Transaction Integer
IdAccount Id of the GatewayAccount used for this Transaction Integer
TypeTransaction Type of Transaction TypeTransaction
StatusTransaction Status of Transaction StatusTransaction
Amount Amount of the Transaction in cents Integer
IdPermission Id of the GatewayPermission used for this Transaction Integer
Links Useful links concerning the Transaction --

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

See Object Convention

Retrieve a Transaction

Definition
GET https://via.proabono.com/Gateway/GatewayTransactions/{Id}
Example Request
GET https://via.proabono.com/Gateway/GatewayTransactions/23
Example Response
{
    "Id": 23,
    "DateCreation": "2023-08-20T07:28:52.95Z",
    "IdUserCreation": 955,
    "DateUpdate": "2023-08-20T07:28:52.95Z",
    "IdUserUpdate": 955,
    "IdSegment": 1215,
    "DateCompleted": "2023-08-20T07:28:52.95Z",
    "IdCustomer": 64811,
    "IdAccount": 20,
    "IdPermission": 71,
    "IdInvoice": 1460427,
    "Amount": 20000,
    "TypePayment": "DirectDebit",
    "TypeGateway": "DirectDebitDummySepa",
    "TypeTransaction": "Debit",
    "StatusTransaction": "Success",
  "Links": [
    {
      "rel": "related-customer",
      "href": "/Distribution/Customers/64811"
    },
    {
      "rel": "related-gatewayaccount",
      "href": "/Gateway/GatewayAccounts/20"
    },
    {
      "rel": "related-gatewaypermission",
      "href": "/Gateway/GatewayPermissions/71"
    },
    {
      "rel": "collection-payment",
      "href": "/Finance/Payments?idGatewayTransaction=23"
    },
    {
      "rel": "collection-gatewayrequest",
      "href": "/Gateway/GatewayRequests?idGatewayTransaction=23"
    },
    {
      "rel": "collection-actionprogrammed",
      "href": "/Finance/ActionProgrammeds?idGatewayTransaction=23"
    }
  ]
}

Retrieve a Transaction by id.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the Transaction to be retrieved. Integer
Returns

List Transactions

Definition
GET https://via.proabono.com/Gateway/GatewayTransactions/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Gateway/GatewayTransactions/?IdBusiness=2
Example Response
{
  "Page": 1,
  "SizePage": 10,
  "Count": 2,
  "TotalItems": 2,
  "DateGenerated": "2023-08-28T13:27:33.49Z",
  "Items": [
    {
      "Id": 23,
      "DateCreation": "2023-08-20T07:28:52.95Z",
      "IdUserCreation": 955,
      "DateUpdate": "2023-08-20T07:28:52.95Z",
      "IdUserUpdate": 955,
      "IdSegment": 1215,
      "DateCompleted": "2023-08-20T07:28:52.95Z",
      "IdCustomer": 64811,
      "IdAccount": 20,
      "IdPermission": 71,
      "IdInvoice": 1460427,
      "Amount": 20000,
      "TypePayment": "DirectDebit",
      "TypeGateway": "DirectDebitDummySepa",
      "TypeTransaction": "Debit",
      "StatusTransaction": "Success",
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayTransactions/23"
        }
      ]
    },
    {
      "Id": 15,
      "DateCreation": "2023-07-27T13:22:55.79Z",
      "IdUserCreation": 149,
      "DateUpdate": "2023-07-27T13:22:55.79Z",
      "IdUserUpdate": 149,
      "IdSegment": 1215,
      "DateCompleted": "2023-08-20T07:28:52.95Z",
      "IdCustomer": 64081,
      "IdAccount": 20,
      "IdPermission": 25,
      "IdInvoice": 1460427,
      "Amount": 20000,
      "TypePayment": "DirectDebit",
      "TypeGateway": "DirectDebitDummySepa",
      "TypeTransaction": "Debit",
      "StatusTransaction": "Success",
      "Links": [
        {
          "rel": "self",
          "href": "/Gateway/GatewayTransactions/15"
        }
      ]
    }
  ]
}

Get the collection of Transactions (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
IdSegment No Id of one of your Segment Integer
DateCreationMin No List all Transactions created after the date Datetime
DateCreationMax No List all Transactions created before the date Datetime
DateUpdateMin No List all Transactions update after the date Datetime
DateUpdateMax No List all Transactions updated before the date Datetime
IdCustomer No List all Transactions of a Customer Integer
IdPermission No List all Transactions made with the same IdPermission Integer
IdAccount No List all Transactions made with the same IdGatewayAccount Integer
TypeTransaction No List all Transactions with a specific type of transaction TypeTransaction
AmountMin No List all Transactions with Amount equal or greater than AmountMin Integer
AmountMax No List all Transactions with Amount equal or less than AmountMax Integer

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

Example:

GET /Gateway/GatewayTransactions/?IdBusiness=2&IdCustomer=64081&DateUpdateMin=2023-07-27T13:54:00

Returns

API Backoffice - Tax Profiles

A TaxProfile describes how a Tax can be applied to a Business, an Offer, a Feature and a CustomerMove.

A TaxProfileException is related to ONE TaxProfile and helps to set an Exception how a Tax can be applied to a Business, an Offer, a Feature and a CustomerMove according the Country, the Region/State/Province and the type (Company or not) of the Customer.

TaxProfile Resource

Property Description Type
Id Id of the TaxProfile Object Integer
Name Name of the TaxProfile String
Description Description of the TaxProfile String
Label Label of the TaxProfile String
RateDefault Default of Rate in cents (Ex: 10,7% -> 1070) Integer
TypeRateTax Type of Tax Rate of this TaxProfile TypeRateTax
Links Useful links concerning the TaxProfile -

See Object Convention

TaxProfileException Resource

Property Description Type
Id Id of the TaxProfileException Object Integer
IdTaxProfile Id of the TaxProfile related to this TaxProfileException Integer
Rate Rate in cents (Ex: 10,7% -> 1070) Integer
TypeRateTax Type of Tax Rate of this TaxProfileException TypeRateTax
Country Country where this TaxProfileException will be applied CountryCode
Region Region stands for Subdivision, Department, Region, Province, State where this TaxProfileException will be applied RegionCode
IsCompany If True, this TaxProfileException will be applied on Companies.
If False, this TaxProfileException will NOT be applied on Companies.
Boolean
Links Useful links concerning the TaxProfileException -

See Object Convention

Create a TaxProfile

Definition
POST https://via.proabono.com/Organization/TaxProfiles
Example Request
POST https://via.proabono.com/Organization/TaxProfiles
{
    "IdBusiness": 2,
    "Name": "VAT for French Business",
    "Description": "Worldwide VAT",
    "Label": "TVA",
    "RateDefault": 0,
    "TypeRateTax": "Outside"
}
Example Response
{
    "Id": 268,
    "DateUpdate": "2023-08-26T18:20:01.69Z",
    "IdUserUpdate": 59,
    "IdBusiness": 2,
    "Name": "VAT for French Business",
    "Description": "Worldwide VAT",
    "Label": "TVA",
    "RateDefault": 0,
    "TypeRateTax": "Outside",
    "Links": [
        {
            "rel": "self",
            "href": "/Organization/TaxProfiles/268"
        },
            {
            "rel": "collection-taxprofile-exception",
            "href": "/Organization/TaxProfileExceptions?idTaxProfile=268"
        }
    ]
}

Create a TaxProfile.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Name Yes Name of the TaxProfile String
Description No Description of the TaxProfile String
Label Yes Label of the TaxProfile String
RateDefault Yes Default of Rate in cents (Ex: 10,7% -> 1070) Integer
TypeRateTax Yes Type of Tax Rate of this TaxProfile TypeRateTax
Returns

Retrieve a TaxProfile

Definition
GET https://via.proabono.com/Organization/TaxProfiles/{Id}
Example Request
GET https://via.proabono.com/Organization/TaxProfiles/268
Example Response
{
    "Id": 268,
    "DateUpdate": "2023-08-26T18:20:01.69Z",
    "IdUserUpdate": 59,
    "IdBusiness": 2,
    "Name": "VAT for French Business",
    "Description": "Worldwide VAT",
    "Label": "TVA",
    "RateDefault": 0,
    "TypeRateTax": "Outside",
    "Links": [
        {
            "rel": "self",
            "href": "/Organization/TaxProfiles/268"
        },
            {
            "rel": "collection-taxprofile-exception",
            "href": "/Organization/TaxProfileExceptions?idTaxProfile=268"
        }
    ]
}

Retrieve a TaxProfile by id.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the TaxProfile to be retrieved. Integer
Returns

Update a TaxProfile

Definition
PATCH https://via.proabono.com/Organization/TaxProfiles
Example Request
PATCH https://via.proabono.com/Organization/TaxProfiles
{
    "IdBusiness": 2,
    "Name": "VAT in France",
    "Description": "French VAT",
    "Label": "TVA 20%",
    "RateDefault": 2000,
    "TypeRateTax": "Stardard"
}
Example Response
{
    "Code": "OK",
    "Message": "Ok"
}

Update the TaxProfile as you want.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Name Yes Name of the TaxProfile String
Description No Description of the TaxProfile String
Label Yes Label of the TaxProfile String
RateDefault Yes Default of Rate in cents (Ex: 10,7% -> 1070) Integer
TypeRateTax Yes Type of Tax Rate of this TaxProfile TypeRateTax
Returns

List TaxProfiles

Definition
GET https://via.proabono.com/Organization/TaxProfiles/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Organization/TaxProfiles/?IdBusiness=2
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 2,
    "TotalItems": 2,
    "DateGenerated": "2023-08-27T17:12:26.58Z",
    "Items": [
        {
            "Id": 268,
            "DateUpdate": "2023-08-26T18:20:01.69Z",
            "IdUserUpdate": 59,
            "IdBusiness": 2,
            "Name": "VAT for French Business",
            "Description": "Worldwide VAT",
            "Label": "TVA",
            "RateDefault": 0,
            "TypeRateTax": "Outside",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Organization/TaxProfiles/268"
                }
            ]
        },
        {
            "Id": 267,
            "DateUpdate": "2023-08-26T18:19:59.03Z",
            "IdUserUpdate": 59,
            "IdBusiness": 2,
            "Name": "VAT for Food",
            "Label": "TVA",
            "RateDefault": 500,
            "TypeRateTax": "Reduced",
            "Links": [
                {
                    "rel": "self",
                    "href": "/Organization/TaxProfiles/267"
                }
            ]
        }
    ]
}

Get the collection of TaxProfiles (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
DateUpdateMin No List all TaxProfiles updated/created after the date Datetime
DateUpdateMax No List all TaxProfiles updated/created before the date Datetime
RateDefaultMin No List all TaxProfiles with RateDefault equal or greater than RateDefaultMin Integer
RateDefaultMax No List all TaxProfiles with RateDefault equal or less than RateDefaultMax Integer
TypeRateTax No List all TaxProfiles of a specific TypeRateTax TypeRateTax

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

Example:

GET /Organization/TaxProfiles/?IdBusiness=2&RateDefaultMin=1000&TypeRateTax=Reduced

Returns

Create a TaxProfileException

Definition
POST https://via.proabono.com/Organization/TaxProfileExceptions
Example Request
POST https://via.proabono.com/Organization/TaxProfileExceptions
{
    "IdBusiness": 2,
    "IdTaxProfile": 268,
    "Rate": 700,
    "TypeRateTax": "Outside",
    "Country": "US",
    "Region": "US-DE",
    "IsCompany": true
}
Example Response
{
    "Id": 229,
    "DateUpdate": "2023-08-26T18:20:04.47Z",
    "IdUserUpdate": 59,
    "IdBusiness": 2,
    "IdTaxProfile": 268,
    "Rate": 700,
    "TypeRateTax": "Outside",
    "Country": "US",
    "Region": "US-DE",
    "IsCompany": true
    "Links": [
        {
            "rel": "self",
            "href": "/Organization/TaxProfileExceptions/229"
        },
        {
            "rel": "related-taxprofile",
            "href": "/Organization/TaxProfiles/268"
        }
    ]
}

Create a TaxProfileException.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Rate Yes Rate in cents (Ex: 10,7% -> 1070) Integer
TypeRateTax Yes Type of Tax Rate of this TaxProfileException TypeRateTax
Country Yes Country where this TaxProfileException will be applied CountryCode
Region No Region stands for Subdivision, Department, Region, Province, State where this TaxProfileException will be applied RegionCode
IsCompany No If True, this TaxProfileException will be applied on Companies.
If False, this TaxProfileException will NOT be applied on Companies.
Boolean
Returns

Retrieve a TaxProfileException

Definition
GET https://via.proabono.com/Organization/TaxProfileExceptions/{Id}
Example Request
GET https://via.proabono.com/Organization/TaxProfileExceptions/229
Example Response
{
    "Id": 229,
    "DateUpdate": "2023-08-26T18:20:04.47Z",
    "IdUserUpdate": 59,
    "IdBusiness": 2,
    "IdTaxProfile": 268,
    "Rate": 700,
    "TypeRateTax": "Outside",
    "Country": "US",
    "Region": "US-DE",
    "IsCompany": true
    "Links": [
        {
            "rel": "self",
            "href": "/Organization/TaxProfileExceptions/229"
        },
        {
            "rel": "related-taxprofile",
            "href": "/Organization/TaxProfiles/268"
        }
    ]
}

Retrieve a TaxProfileException by id.

Request Parameters
Parameter Required? Description Type
Id Yes The identifier of the TaxProfileException to be retrieved. Integer
Returns

Update a TaxProfileException

Definition
PATCH https://via.proabono.com/Organization/TaxProfileExceptions
Example Request
PATCH https://via.proabono.com/Organization/TaxProfileExceptions
{
    "IdBusiness": 2,
    "IdTaxProfile": 268,
    "Rate": 850,
    "TypeRateTax": "Reduced",
    "Country": "US",
    "Region": "US-DE",
}
Example Response
{
    "Code": "OK",
    "Message": "Ok"
}

Update the TaxProfileException as you want.

Request Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
Rate Yes Rate in cents (Ex: 10,7% -> 1070) Integer
TypeRateTax Yes Type of Tax Rate of this TaxProfileException TypeRateTax
Country Yes Country where this TaxProfileException will be applied CountryCode
Region No Region stands for Subdivision, Department, Region, Province, State where this TaxProfileException will be applied RegionCode
IsCompany No If True, this TaxProfileException will be applied on Companies.
If False, this TaxProfileException will NOT be applied on Companies.
Boolean
Returns

List TaxProfileExceptions

Definition
GET https://via.proabono.com/Organization/TaxProfileExceptions/?IdBusiness={YourIdBusiness}
Example Request
GET https://via.proabono.com/Organization/TaxProfileExceptions/?IdBusiness=2
Example Response
{
    "Page": 1,
    "SizePage": 10,
    "Count": 2,
    "TotalItems": 2,
    "DateGenerated": "2023-08-27T17:12:26.58Z",
    "Items": [
        {
            "Id": 229,
            "DateUpdate": "2023-08-26T18:20:04.47Z",
            "IdUserUpdate": 59,
            "IdBusiness": 2,
            "IdTaxProfile": 268,
            "Rate": 700,
            "TypeRateTax": "Outside",
            "Country": "US",
            "Region": "US-DE",
            "IsCompany": true
            "Links": [
                {
                    "rel": "self",
                    "href": "/Organization/TaxProfileExceptions/229"
                }
            ]
        },
        {
            "Id": 230,
            "DateUpdate": "2023-08-26T18:19:54.23Z",
            "IdUserUpdate": 59,
            "IdBusiness": 2,
            "IdTaxProfile": 268,
            "Rate": 950,
            "TypeRateTax": "Outside",
            "Country": "US",
            "Region": "US-CA",
            "IsCompany": true
            "Links": [
                {
                    "rel": "self",
                    "href": "/Organization/TaxProfileExceptions/230"
                }
            ]
        }
    ]
}

Get the collection of TaxProfileExceptions (filtered or not).

Querystring Parameters
Parameter Required? Description Type
IdBusiness Yes Id of your Business Integer
DateUpdateMin No List all TaxProfileExceptions updated/created after the date Datetime
DateUpdateMax No List all TaxProfileExceptions updated/created before the date Datetime
IdTaxProfile No List all TaxProfileExceptions of a specific TaxProfile Integer
RateMin No List all TaxProfileExceptions with Rate equal or greater than RateMin Integer
RateMax No List all TaxProfileExceptions with Rate equal or less than RateMax Integer
TypeRateTax No List all TaxProfileExceptions of a specific TypeRateTax TypeRateTax
Country No List all TaxProfileExceptions related to a specific Country CountryCode
Region No List all TaxProfileExceptions related to a specific Region RegionCode
IsCompany No List all TaxProfileExceptions which apply or not to a Company Boolean

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

Example:

GET /Organization/TaxProfileExceptions/?IdBusiness=2&RateMin=1000&TypeRateTax=Reduced&Country=US

Returns