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 :
- Multi-currency,
- Multi-gateways,
- Customer segmentation (i.e. different sets of offers according your customer categories),
- More than one application using ProAbono,
- ...
Getting Started
Wondering how to:
- Register to ProAbono
- Make Your First Requests
- 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,
- codes in the 2xx range indicate success,
- codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, etc.),
- and codes in the 5xx range indicate an error with ProAbono's servers.
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.
Page
: Page number your are on.SizePage
: Maximum number of items per pageCount
: Number of items on the current pageTotalItems
: Number of items in this collectionLinks
: Most resources will provide these links at the end of the response object in alink
array that supplies links withrel=next
andrel=prev
attributes.
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 |
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 | - |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 | - |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 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 | - |
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 |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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 |
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- In any other cases, response body contains a single error describing the problem.
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 |
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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. |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Response body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Response body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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. |
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 $ :
- Override at the business level if you want to display '$' in all the segment of your business.
- Override at the segment level if you want to display '$' only in one or several segments of your business.
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 $ :
- Override at the business level if you want to display '$' in all the segment of your business.
- Override at the segment level if you want to display '$' only in one or several segments of your business.
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 | -- |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 | -- |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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 | - |
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 | - |
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 201 in case of a success. Reponse body contains the created resource.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success. Reponse body contains the desired resource.
- HTTP 404 if the resource is not found. Resource body may contain more information.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of a success.
- HTTP 422 in case of validation errors. Response body contains a list of errors.
- In any other cases, response body contains a single error describing the problem.
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
- HTTP 200 in case of success. Response body contains a Paginated list of requested resources.
- HTTP 204 if there is no result. Response body is Empty.
- In any other cases, response body contains a single error describing the problem.