Fenerum API (v1)

Download OpenAPI specification:Download

Getting started with Fenerum API

This page will help you get started with Fenerum. You'll be up and running in a jiffy! If you are looking for full API Reference check here.

Interactive API

Simple API explorer can be found when opening API links directly in the browser: https://app.fenerum.com/api/v1/

For the interactive API console you can go to https://app.fenerum.com/api/swagger/

On each endpoint you will find a button

button

which will point you to the same endpoint in the interactive API console.

Next steps

To learn more about common integration flows check out our guides:

or dive deep into our full API reference: API Reference.

In case of any problems don't hesitate to reach out to us at support@fenerum.com.

Authentication

In order to use our API you need to authorize yourself by specifying an appropriate Authorization header:

Authorization: Token <your token>

Keep your API token secret!
Treat your token in the same way as you would treat a password.

Token

Security Scheme Type API Key
Header parameter name: Authorization

Creating an API token

If you have access to your Organization settings, you can easily create an API token from the user interface:

  1. Choose Settings > Integrations tab in the menu on the left.
  2. In the Fenerum section on top click a Create API user button.

Create API user button placement

This will generate a new user (named API USER) together with a corresponding authorization token. From now on you will see the api token value instead of the button:

Created token

The new API USER is visible on the Users list:

Created API USER on the user list

By default the API USER has all possible permissions. You can change them by editing it's profile.

That's all! You're now ready to start using our API.

Keep your API token secret!
Treat your token in the same way as you would treat a password.

Request metadata

Your API key may be used for integrating multiple systems with Fenerum.

In order to deliver the best customer support and for ensuring detailed auditability, we require that you provide us with an additional HTTP request header X-Client-System.

In case multiple users are using your system that's integrated with Fenerum, we advise you to put their username in the X-User HTTP header. This will allow for keeping track of which external user made changes to your data in Fenerum.

X-Client-System: <name of your client system>
X-User: <username of user in your client system>

Example

Given that your client system is named MyAwesomeCRM and the user is called john you should add this header to your every API request:

X-Client-System: MyAwesomeCRM
X-User: john

Pagination

For resource list views, Fenerum uses page-based pagination with 20 elements included per page.

The results are enveloped with pagination-related fields:

  • count integer
    The total number of elements available in this view (with potential filters applied).

  • next string, url, nullable
    The address tho GET to obtain the next page of results (with potential filters applied).

  • prev string, url, nullable
    The address tho GET to obtain the previous page of results (with potential filters applied).

  • results list
    The list of objects returned by the view. For brevity, this is the only part shown and described in particular resource list views responses.

Filtering

Some of the resource list views supports filtering of elements.

Filtering is implemented by adding proper query parameter to the URL (as a GET parameter).

For example to filter invoices issued for a given account one can call API:

GET /api/v1/invoices/?account=some-account-code

In some cases there exists multiple filters for single field.

The meaning of sufix for filtering:

  • __lt - less than
  • __gt - greater than
  • __lte - less or equal than
  • __gte - greater or equal than

Throttling

One user can submit 60 requests per minute. After this threshold API will respond with 429 status code.

Account workflows

An Account in Fenerum is a named entity who can have one or more subscriptions. It represents clients of your Organization and can be used for both companies and people.

Creating an Account

To create an account POST data to the /accounts/ endpoint. The minimal data required for creating an account:

Endpoint: POST /api/v1/accounts/

{
  "company_name": "Your Company ApS",
  "code": "123",
  "legal_address": "company street",
  "legal_zipcode": "12345",
  "legal_city": "company city",
  "legal_country": "DK"
}

legal_country field value must be an ISO Alpha-2 code

The example response would be:

{
  "uuid": "d6dd8a72-8eea-4aaf-8b0b-8d6aee569fee",
  "company_name": "Your Company ApS",
  "code": "123",
  "legal_address": "company street",
  "legal_zipcode": "12345",
  "legal_city": "company city",
  "legal_country": "DK",
  "legal_vat_number": "",
  "paymentcard_set": [],
  "subscription_set": [],
  "recipient_set": [],
  "draftinvoiceline_set": [],
  "model": "billing.Account",
  "schema": "20190613-default"
}

In the next step you should add an email recipient:

Endpoint: POST /api/v1/recipients/

{
  "account": "d6dd8a72-8eea-4aaf-8b0b-8d6aee569fee",
  "name": "Mads Andersen",
  "email": "mads@account-company.com",
  "receive_invoice": true,
  "receive_payment_confirmation": true,
  "receive_subscription_notifications": true 
}

And that's all. You've successfully created a new account that will receive emails from us. Congrats!

Handling subscriptions

Primer

Creating Subscriptions

Primer

Let's start with introducing a couple of objects:

  • Plan
    Plan is a product or service that an Organization (your company) offers.

  • PlanTerms
    This object represents a concrete set of conditions a product or service (a Plan) can be subscribed to with.

    It allows:

    • setting various intervals (billing periods) counted in days, months or years
    • setting a price in any currency
    • determining whether the charging is done forwards (ahead-of-time, so on the first day of subscription billing period) or backwards (on the last day of subscription billing period)

    PlanTerms that have been used at least once by a Subscription can't be removed - they can be deactivated instead to not allow for starting new subscriptions using them.

  • Subscription
    This object represents a usage of a PlanTerms by a customer (Account).

Creating Subscriptions

There are two ways to create a new subscription for an account:

  1. Through subscriptions/ endpoint
  2. Through account/{code}/subscribe/ endpoint

There are important differences between these endpoints which we discuss in more details below.

Create a new Subscription

Endpoint: POST /api/v1/subscriptions/

This endpoint is a typical way of creating a new object. You need to provide all the required information for a new subscription.

This endpoint will simply create a new object in the database.

Subscriptions that may already exist won't be touched.

Example request:

{
    "account": "account_code",
    "terms": "f4293c5e-b592-43a1-9c68-eb76f62f6250",
    "quantity": 5,
    "collection_method": "invoice",
    "start_date": "2019-10-2861T12:00",
    "group_on_invoice": false,
    "po_number": "0001"
}

Subscribe an Account to a Plan

Using this endpoint has a different flow:

  • if there already is (exactly one) subscription for this account → try to update it with provided data.
    • if the update fails → cancel the existing subscription and create a new one.
  • if there are more then one subscriptions → cancel all of them and create a new one.
  • f there are no subscriptions → create a new one.

This endpoint will make a prorated invoice immediately if there is a subscription being replaced on the account (i.e. cancellation took place).

Furthermore, the payload for this endpoint takes only four keys: terms, quantity, collection_method and group_on_invoice. If you wish to specify more attributes you can make a subsequent PATCH request on the created subscription (see section about updating subscriptions).

Endpoint: POST /api/v1/accounts/{account_code}/subscribe/

Example request:

{
    "terms": "f4293c5e-b592-43a1-9c68-eb76f62f6250",
    "quantity": 1,
    "collection_method": "invoice",
    "group_on_invoice": false
}

In response to both of these endpoint you will get the details of created subscription:

Updating Subscriptions

We provide two methods for subscription updates: PUT and PATCH.

Right now using PUT is equivalent to using PATCH i.e. you can specify only the fields you want to change. In the next version of our API, using PUT method will require to specify all fields explicitly (in accordance with good REST practices).

The flow for updates is the following:

  • try to update the subscription with provided data.
    • if the update fails → cancel the subscription and create a new one.

Note that only the subscription you want to change could end up being cancelled. If other susbscriptions for that account exist they won't be touched

When the update can fail?

The update is not permitted when:

  1. You are trying to set a new plan terms that have a different currency then the existing ones.
  2. You are trying to set a new plan terms on a subscription with pre_renewal_invoicing = True.

In addition to Subscription attributes this endpoint specifies also an optional boolean field prorate which, when set to false, will prevent subscriptions using forward-charging plans from issuing prorate invoices if only their quantity was changed.

If you set prorate to false and the update fails, the subscription won't be cancelled and you will receive 400 error.

How to find terms uuid

If you don't know the uuid of the PlanTerm you want to use you can hit the Plan list endpoint:

Endpoint: GET /api/v1/plans/

Example response:

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "8e63c514-ba33-48da-97ad-4c43713ccf5f",
      "name": "representative",
      "code": "254f49db-a9d8-4b58-bed9-aa4aa9b01155",
      "collect_vat": true,
      "vat_type": "unknown",
      "planterms_set": [
        {
          "uuid": "31406c29-7933-4cea-be4a-bc6964657a42",
          "interval_type": "month",
          "interval_count": 2,
          "price": "445.07",
          "currency": "EUR",
          "backwards_charging": false,
          "active": true,
          "revenue_group": null,
          "model": "billing.PlanTerms",
          "schema": "20190613-default"
        },
        {
          "uuid": "712d53c5-8fd1-4dff-a31a-0d3d2758ab14",
          "interval_type": "month",
          "interval_count": 10,
          "price": "912.53",
          "currency": "EUR",
          "backwards_charging": false,
          "active": true,
          "revenue_group": null,
          "model": "billing.PlanTerms",
          "schema": "20190613-default"
        },
        {
          "uuid": "46d4c7b7-e977-4d4d-a403-f4ddd9695960",
          "interval_type": "month",
          "interval_count": 29,
          "price": "830.49",
          "currency": "EUR",
          "backwards_charging": false,
          "active": true,
          "revenue_group": null,
          "model": "billing.PlanTerms",
          "schema": "20190613-default"
        }
      ],
      "model": "billing.Plan",
      "schema": "20190613-default"
    }
  ]
}

Payment cards workflows

Payment Cards cover both credit and debit cards attached to an account.

Currently supported providers:

Creating a Payment Card

This endpoint is meant for registering in Fenerum a card that already exists in a provider's system.

In the token field of a payload you need to provide an identifier of a card. For Stripe this would mean a Payment Method ID, for QuickPay this would be a subscription id.

All possible token types are described in create card API docs'

Endpoint: POST /api/v1/paymentcards/

{
    "account": "50e9aa0b-8d35-4da7-9a9b-8a35b11579b2",
    "token": "pm_123456789",
    "gateway": "stripe_new"
}

In response you will receive created PaymentCard data:

{
    "uuid": "09655a26-12e0-4a82-8524-7851998886fc",
    "active": true,
    "brand": "Visa",
    "card_number": "XXXXXXXXXXXX4242",
    "month": 1,
    "year": 2020,
    "name": "test@fenerum.com",
    "payment_gateway": "stripe_new",
    "payment_gateway_id": "card_1DcDzT41f9iZfpJVnfDHQY8p",
    "account": "50e9aa0b-8d35-4da7-9a9b-8a35b11579b2"
}

Remember that in order to create a PaymentCard objects you need to set provider's API tokens in your Organization's settings.

Enabling your customer to register a card themselves

Alternatively you can prompt your user to register their card. Through our API you can obtain an url which you can then send to your customer. The url will redirect them to the relevant PSP's form where they will be able to put their credit card data. Fenerum will automatically register their card when they fill in the form.

Endpoint: GET /api/v1/accounts/{code}/card_registration_link/{gateway}/

Disabling a card

To disable a PaymentCard simply perform a POST request with empty payload:

Endpoint: POST /api/v1/paymentcards/{card_uuid}/disable

NOTE: This will apply only to Fenerum, it will not change a card data in the provider's system.

API Reference

This is a full API reference for the Fenerum. It describes every action which is possible using Fenerum REST API.

Invoice

api_v1_invoices_list

button

Invoices are uniquely numbered lists of sold items and services issued to a customer on a particular date

Authorizations:
query Parameters
uuid
string
invoice_number
number
search
string

Filter by invoice number of company name

account
string

Filter using account code (External ID)

account_not
string

Filter using account code (External ID)

since
string

Deprecated, one should use date__gte.

status_not
string
total__gt
number
total__lt
number
subscription_uuid
string

Filter using Subscription UUID

debt_collection
string
status
string
currency
string
collection_method
string
kickback_status
string
balance
string
imported
string
import_source
string
date__lte
string

Format: YYYY-MM-DD

date__gte
string

Format: YYYY-MM-DD

created_date__lte
string

Format: YYYY-MM-DD

created_date__gte
string

Format: YYYY-MM-DD

last_modified_date__lte
string

Format: YYYY-MM-DD

last_modified_date__gte
string

Format: YYYY-MM-DD

due_date__lte
string

Format: YYYY-MM-DD

due_date__gte
string

Format: YYYY-MM-DD

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/invoices/?uuid=SOME_STRING_VALUE&invoice_number=SOME_NUMBER_VALUE&search=SOME_STRING_VALUE&account=SOME_STRING_VALUE&account_not=SOME_STRING_VALUE&since=SOME_STRING_VALUE&status_not=SOME_STRING_VALUE&total__gt=SOME_NUMBER_VALUE&total__lt=SOME_NUMBER_VALUE&subscription_uuid=SOME_STRING_VALUE&debt_collection=SOME_STRING_VALUE&status=SOME_STRING_VALUE&currency=SOME_STRING_VALUE&collection_method=SOME_STRING_VALUE&kickback_status=SOME_STRING_VALUE&balance=SOME_STRING_VALUE&imported=SOME_STRING_VALUE&import_source=SOME_STRING_VALUE&date__lte=SOME_STRING_VALUE&date__gte=SOME_STRING_VALUE&created_date__lte=SOME_STRING_VALUE&created_date__gte=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&due_date__lte=SOME_STRING_VALUE&due_date__gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_invoices_available_vat_billing_periods

button

Get available VAT billing periods for your organization. If it does not return any options it means that this feature is not available for your country.

Authorizations:

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/invoices/available-vat-billing-periods/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_invoices_export_vat_report

button

Exports VAT report for given VAT billing period

Authorizations:
query Parameters
export_period
string

UUID of the VAT billing period to make export for. If not provided all invoices will be used for making the export.

Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_invoices_export

button

Invoices are uniquely numbered lists of sold items and services issued to a customer on a particular date

Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_invoices_read

button

Invoices are uniquely numbered lists of sold items and services issued to a customer on a particular date

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/invoices/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "invoice_number": 0,
  • "external_invoice_number": "string",
  • "invoice_api_url": "string",
  • "account_uuid": "string",
  • "account_code": "string",
  • "account": {
    },
  • "pay_to_bank_account": 0,
  • "date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "currency": "DKK",
  • "status": "open",
  • "kickback_status": "commission_pending",
  • "collection_method": "payment_card",
  • "pdf_base64": "string",
  • "total": "string",
  • "subtotal": "string",
  • "vat": "string",
  • "balance": "string",
  • "invoiceline_set": [
    ],
  • "imported": true,
  • "import_source": "manual",
  • "model": "string",
  • "schema": "string"
}

api_v1_invoices_partial_update

button

PATCH is only applicable if you have a KICKBACK feature enabled and want to update the kickback_status of the invoice.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json
kickback_status
string or null (Kickback status)
Enum: "commission_pending" "commission_paid"

Available only when Kickback feature is turn on for the organization.

Responses

Request samples

Content type
application/json
{
  • "kickback_status": "commission_pending"
}

Response samples

Content type
application/json
{
  • "kickback_status": "commission_pending",
  • "model": "string",
  • "schema": "string"
}

api_v1_invoices_accept_loss

button

Accept loss for the invoice. Can only accept it if an invoice has a chargeback status and organization has the debt collection feature.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json
registration_date
required
string <date> (Registration date)

Responses

Request samples

Content type
application/json
{
  • "registration_date": "2019-08-24"
}

api_v1_invoices_apply_credit_note

button

Creates and applies a credit note to the invoice. The status of the invoice must be chargeback and it must not be imported.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Responses

Request samples

curl --request POST \
  --url https://app.fenerum.com/api/v1/invoices/%7Buuid%7D/apply-credit-note/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

api_v1_invoices_apply_credit

button

Applies the credit balance of the invoice to another. The balance of the invoice must be less than 0 and the invoice must not be imported.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json
target_invoice
required
string <uuid> (Target invoice)

The invoice the credit should be applied to.

amount
string <decimal> (Amount)

Amount to credit. Defaults to the balance of the invoice with the credit.

Responses

Request samples

Content type
application/json
{
  • "target_invoice": "8b0a3194-d33a-414b-a5d7-a1aa616a7236",
  • "amount": "string"
}

Response samples

Content type
application/json
{
  • "error": "string"
}

api_v1_invoices_change_collection_method

button

Change collection method of the invoice. Can only change it if an invoice has a chargeback status.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json
collection_method
required
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"

Responses

Request samples

Content type
application/json
{
  • "collection_method": "payment_card"
}

api_v1_invoices_mark_as_due

button

Mark invoice as due. Can only mark it if an invoice has a chargeback status.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

api_v1_invoices_pay

button

Request paying the Invoice.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json
collection_method
required
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"

Responses

Request samples

Content type
application/json
{
  • "collection_method": "payment_card"
}

Response samples

Content type
application/json
{
  • "error": "string"
}

api_v1_invoices_refund

button

Refund the Invoice and return the representation of the Credit Note.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "invoice_number": 0,
  • "external_invoice_number": "string",
  • "invoice_api_url": "string",
  • "account_uuid": "string",
  • "account_code": "string",
  • "account": {
    },
  • "pay_to_bank_account": 0,
  • "date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "currency": "DKK",
  • "status": "open",
  • "kickback_status": "commission_pending",
  • "collection_method": "payment_card",
  • "pdf_base64": "string",
  • "total": "string",
  • "subtotal": "string",
  • "vat": "string",
  • "balance": "string",
  • "invoiceline_set": [
    ],
  • "imported": true,
  • "import_source": "manual",
  • "model": "string",
  • "schema": "string"
}

api_v1_invoices_resend

button

Resend the Invoice. This is asynchronous action and the email will not be sent right away.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Invoice.

Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Activity

api_v1_activities_list

button

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

uuid
string
subscription_uuid
string
type
string
mrr_change_type
string
is_manual
string
deleted
string
future
string
since
string

Deprecated

use_activity_date
string

Deprecated

activity_type
string
created_date__lte
string

Format: YYYY-MM-DD

created_date__org_tz_lte
string

Format: YYYY-MM-DD

created_date__gte
string

Format: YYYY-MM-DD

created_date__org_tz_gte
string

Format: YYYY-MM-DD

updated_date__lte
string

Format: YYYY-MM-DDTHH:MM:SSZ

updated_date__gte
string

Format: YYYY-MM-DDTHH:MM:SSZ

activity_date__lte
string

Format: YYYY-MM-DD

activity_date__org_tz_lte
string

Format: YYYY-MM-DD

activity_date__gte
string

Format: YYYY-MM-DD

activity_date__org_tz_gte
string

Format: YYYY-MM-DD

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/activities/?account=SOME_STRING_VALUE&uuid=SOME_STRING_VALUE&subscription_uuid=SOME_STRING_VALUE&type=SOME_STRING_VALUE&mrr_change_type=SOME_STRING_VALUE&is_manual=SOME_STRING_VALUE&deleted=SOME_STRING_VALUE&future=SOME_STRING_VALUE&since=SOME_STRING_VALUE&use_activity_date=SOME_STRING_VALUE&activity_type=SOME_STRING_VALUE&created_date__lte=SOME_STRING_VALUE&created_date__org_tz_lte=SOME_STRING_VALUE&created_date__gte=SOME_STRING_VALUE&created_date__org_tz_gte=SOME_STRING_VALUE&updated_date__lte=SOME_STRING_VALUE&updated_date__gte=SOME_STRING_VALUE&activity_date__lte=SOME_STRING_VALUE&activity_date__org_tz_lte=SOME_STRING_VALUE&activity_date__gte=SOME_STRING_VALUE&activity_date__org_tz_gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_activities_create

button

Create a Manual Activity

Authorizations:
Request Body schema: application/json
subscription
required
string or null <uuid> (Subscription)
date
required
string <date-time> (Date)

The date the activity comes into effect

quantity
required
integer (Quantity) >= 1
terms
required
string <uuid> (Terms)
mrr
required
string <decimal> (MRR)

It is the MRR in the currency of Plan Terms

Responses

Request samples

Content type
application/json
{
  • "subscription": "da7489c5-d730-47b7-9958-07300ef9d3d8",
  • "date": "2019-08-24T14:15:22Z",
  • "quantity": 1,
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "mrr": "string"
}

Response samples

Content type
application/json
{
  • "subscription": "da7489c5-d730-47b7-9958-07300ef9d3d8",
  • "date": "2019-08-24T14:15:22Z",
  • "quantity": 1,
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "mrr": "string",
  • "model": "string",
  • "schema": "string"
}

api_v1_activities_account_list

button

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

uuid
string
subscription_uuid
string
is_manual
string
future
string
type
string
created_date__lte
string

Format: YYYY-MM-DD

created_date__org_tz_lte
string

Format: YYYY-MM-DD

created_date__gte
string

Format: YYYY-MM-DD

created_date__org_tz_gte
string

Format: YYYY-MM-DD

date__lte
string

Format: YYYY-MM-DD

date__org_tz_lte
string

Format: YYYY-MM-DD

date__gte
string

Format: YYYY-MM-DD

date__org_tz_gte
string

Format: YYYY-MM-DD

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/activities/account/?account=SOME_STRING_VALUE&uuid=SOME_STRING_VALUE&subscription_uuid=SOME_STRING_VALUE&is_manual=SOME_STRING_VALUE&future=SOME_STRING_VALUE&type=SOME_STRING_VALUE&created_date__lte=SOME_STRING_VALUE&created_date__org_tz_lte=SOME_STRING_VALUE&created_date__gte=SOME_STRING_VALUE&created_date__org_tz_gte=SOME_STRING_VALUE&date__lte=SOME_STRING_VALUE&date__org_tz_lte=SOME_STRING_VALUE&date__gte=SOME_STRING_VALUE&date__org_tz_gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_activities_account_export

button

Authorizations:
Request Body schema: application/json
account_uuid
required
string (Account uuid) non-empty
account_code
required
string (Account code) non-empty
company_name
required
string (Company name) non-empty
type
required
string (Type)
Enum: "new_business" "expansion" "contraction" "churn" "reactivation"
new_mrr
required
string or null <decimal> (New mrr)
old_mrr
required
string or null <decimal> (Old mrr)
date
required
string <date-time> (Date)

The date the activity comes into effect

subscription
required
string or null (Subscription) non-empty
is_manual
boolean (Is manual)

Responses

Request samples

Content type
application/json
{
  • "account_uuid": "string",
  • "account_code": "string",
  • "company_name": "string",
  • "type": "new_business",
  • "new_mrr": "string",
  • "old_mrr": "string",
  • "date": "2019-08-24T14:15:22Z",
  • "subscription": "string",
  • "is_manual": true
}

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_activities_account_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this activity.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/activities/account/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account_uuid": "string",
  • "account_code": "string",
  • "company_name": "string",
  • "type": "new_business",
  • "mrr_change": "string",
  • "new_mrr": "string",
  • "old_mrr": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "date": "2019-08-24T14:15:22Z",
  • "subscription": "string",
  • "is_manual": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_activities_delete_list

button

Delete multiple Manual Activities matching filtering params

Authorizations:

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/activities/delete/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

api_v1_activities_export

button

Authorizations:
Request Body schema: application/json
account_uuid
required
string (Account uuid) non-empty
account_code
required
string (Account code) non-empty
subscription
required
string or null (Subscription) non-empty
invoice
string or null <uuid> (Invoice)
date
required
string <date-time> (Date)

The date the activity comes into effect

type
required
string (Type)
Enum: "new" "reactivate" "renew" "cancel" "upgrade_qty" "downgrade_qty" "upgrade_subscription" "downgraded_subscription" "modified" "invoice_sent" "invoice_paid" "payment_made" "currency_exchange"
is_manual
boolean (Is manual)
is_churn
boolean (Is churn)
old_currency
string or null (Old currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
new_currency
string or null (New currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
old_mrr_in_subscription_currency
string or null <decimal> (Old mrr in subscription currency)
new_mrr_in_subscription_currency
string or null <decimal> (New mrr in subscription currency)
old_mrr
string or null <decimal> (Old mrr)
new_mrr
string or null <decimal> (New mrr)
old_quantity
integer or null (Old quantity) [ -2147483648 .. 2147483647 ]
new_quantity
integer or null (New quantity) [ -2147483648 .. 2147483647 ]
old_terms
string or null <uuid> (Old terms)
new_terms
string or null <uuid> (New terms)
old_terms_name
required
string or null (Old terms name) non-empty
new_terms_name
required
string or null (New terms name) non-empty
required
object (EmbeddedPlan)
required
object (EmbeddedPlan)
old_plan_name
required
string or null (Old plan name) non-empty

DEPRECATED: use old_plan.name instead

new_plan_name
required
string or null (New plan name) non-empty

DEPRECATED: use new_plan.name instead

company_name
required
string (Company name) non-empty
ean_invoice
boolean (Ean invoice)
deleted
boolean (Deleted)

Responses

Request samples

Content type
application/json
{
  • "account_uuid": "string",
  • "account_code": "string",
  • "subscription": "string",
  • "invoice": "f5072b7b-65cb-48aa-bf69-c999195da70c",
  • "date": "2019-08-24T14:15:22Z",
  • "type": "new",
  • "is_manual": true,
  • "is_churn": true,
  • "old_currency": "DKK",
  • "new_currency": "DKK",
  • "old_mrr_in_subscription_currency": "string",
  • "new_mrr_in_subscription_currency": "string",
  • "old_mrr": "string",
  • "new_mrr": "string",
  • "old_quantity": -2147483648,
  • "new_quantity": -2147483648,
  • "old_terms": "ad992289-ddca-4bb6-ad6d-d633bfc37629",
  • "new_terms": "7f43d5df-307a-4725-a28d-3e5b9b27e92e",
  • "old_terms_name": "string",
  • "new_terms_name": "string",
  • "old_plan": {
    },
  • "new_plan": {
    },
  • "old_plan_name": "string",
  • "new_plan_name": "string",
  • "company_name": "string",
  • "ean_invoice": true,
  • "deleted": true
}

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_activities_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this activity.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/activities/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account_uuid": "string",
  • "account_code": "string",
  • "subscription": "string",
  • "invoice": "f5072b7b-65cb-48aa-bf69-c999195da70c",
  • "date": "2019-08-24T14:15:22Z",
  • "created_date": "2019-08-24T14:15:22Z",
  • "updated_date": "2019-08-24T14:15:22Z",
  • "type": "new",
  • "is_manual": true,
  • "is_churn": true,
  • "old_currency": "DKK",
  • "new_currency": "DKK",
  • "old_mrr_in_subscription_currency": "string",
  • "new_mrr_in_subscription_currency": "string",
  • "old_mrr": "string",
  • "new_mrr": "string",
  • "old_quantity": -2147483648,
  • "new_quantity": -2147483648,
  • "old_terms": "ad992289-ddca-4bb6-ad6d-d633bfc37629",
  • "new_terms": "7f43d5df-307a-4725-a28d-3e5b9b27e92e",
  • "mrr_change": "string",
  • "quantity_change": "string",
  • "old_terms_name": "string",
  • "new_terms_name": "string",
  • "old_plan": {
    },
  • "new_plan": {
    },
  • "old_plan_name": "string",
  • "new_plan_name": "string",
  • "company_name": "string",
  • "ean_invoice": true,
  • "deleted": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_activities_update

button

Update a Manual Activity

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this activity.

Request Body schema: application/json
subscription
required
string or null <uuid> (Subscription)
date
required
string <date-time> (Date)

The date the activity comes into effect

quantity
required
integer (Quantity) >= 1
terms
required
string <uuid> (Terms)
mrr
required
string <decimal> (MRR)

It is the MRR in the currency of Plan Terms

Responses

Request samples

Content type
application/json
{
  • "subscription": "da7489c5-d730-47b7-9958-07300ef9d3d8",
  • "date": "2019-08-24T14:15:22Z",
  • "quantity": 1,
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "mrr": "string"
}

Response samples

Content type
application/json
{
  • "subscription": "da7489c5-d730-47b7-9958-07300ef9d3d8",
  • "date": "2019-08-24T14:15:22Z",
  • "quantity": 1,
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "mrr": "string",
  • "model": "string",
  • "schema": "string"
}

api_v1_activities_partial_update

button

Update a Manual Activity

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this activity.

Request Body schema: application/json
subscription
required
string or null <uuid> (Subscription)
date
required
string <date-time> (Date)

The date the activity comes into effect

quantity
required
integer (Quantity) >= 1
terms
required
string <uuid> (Terms)
mrr
required
string <decimal> (MRR)

It is the MRR in the currency of Plan Terms

Responses

Request samples

Content type
application/json
{
  • "subscription": "da7489c5-d730-47b7-9958-07300ef9d3d8",
  • "date": "2019-08-24T14:15:22Z",
  • "quantity": 1,
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "mrr": "string"
}

Response samples

Content type
application/json
{
  • "subscription": "da7489c5-d730-47b7-9958-07300ef9d3d8",
  • "date": "2019-08-24T14:15:22Z",
  • "quantity": 1,
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "mrr": "string",
  • "model": "string",
  • "schema": "string"
}

api_v1_activities_delete

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this activity.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/activities/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

ERPAccountBudget

api_v1_account-budgets_list

button

Authorizations:
query Parameters
budget_id
string
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/account-budgets/?budget_id=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_account-budgets_read

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this erp account budget.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/account-budgets/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "budget_id": "string",
  • "erp_account": {
    },
  • "start_date": "2019-08-24",
  • "end_date": "string",
  • "start_amount": "string",
  • "calculated_amount": "string",
  • "model": "string",
  • "schema": "string"
}

Account

api_v1_accounts_list

button

An Account in Fenerum is a named entity who can have one or more subscriptions. Can be used for both companies and people.

Authorizations:
query Parameters
uuid
string
search
string

Filter by company name

balance
string
subscription_status
string
subscription_collection_method
string
subscription_set_to_expire
string
legal_country
string
active_payment_method
string
reseller_program
string
registered_for_direct_debit
string
register_status
string
ean_invoicing
string
created_date__lte
string

Format: YYYY-MM-DDTHH:MM:SSZ

created_date__gte
string

Format: YYYY-MM-DDTHH:MM:SSZ

last_modified_date__lte
string

Format: YYYY-MM-DDTHH:MM:SSZ

last_modified_date__gte
string

Format: YYYY-MM-DDTHH:MM:SSZ

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

header Parameters
Fields
string

A comma-separated list of fields to be included in the Account representation.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/accounts/?uuid=SOME_STRING_VALUE&search=SOME_STRING_VALUE&balance=SOME_STRING_VALUE&subscription_status=SOME_STRING_VALUE&subscription_collection_method=SOME_STRING_VALUE&subscription_set_to_expire=SOME_STRING_VALUE&legal_country=SOME_STRING_VALUE&active_payment_method=SOME_STRING_VALUE&reseller_program=SOME_STRING_VALUE&registered_for_direct_debit=SOME_STRING_VALUE&register_status=SOME_STRING_VALUE&ean_invoicing=SOME_STRING_VALUE&created_date__lte=SOME_STRING_VALUE&created_date__gte=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE' \
  --header 'Fields: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_accounts_create

button

Note that ean_invoicing and ean_number can only be set if you have an GLN/EAN invoicing feature enabled.

Authorizations:
Request Body schema: application/json
company_name
required
string (Company name) [ 1 .. 128 ] characters
code
required
string (Custom ID from external system) [ 1 .. 128 ] characters
erp_id
string or null (Erp id) [ 1 .. 128 ] characters
partner
integer or null (Partner)
ean_invoicing
boolean (Electronic invoicing)

Check this to use GLN/EAN/CVR invoice box instead of email for invoice delivery

einvoicing_identifier_schema
string (Einvoicing identifier schema)
Enum: "GLN" "ORGNR"

Choices depend on the Organization's and Account's countries.

ean_number
string or null (GLN/EAN number) <= 128 characters
invoice_note
string or null (Invoice note) <= 240 characters

Additional text that will be added to description on the invoice.

language
string (Language)
Enum: "en" "da" "nl" "fi" "de" "no" "pl" "pt" "es" "se"

Language of communication: if possible invoices, emails etc. will be translated to this language.

legal_address
required
string (Legal address) non-empty
legal_zipcode
required
string (Legal zipcode) [ 1 .. 128 ] characters
legal_city
required
string (Legal city) [ 1 .. 128 ] characters
legal_country
required
string (Legal country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
legal_vat_number
string (Legal VAT number) <= 128 characters
billing_same_as_legal
boolean (Billing same as legal)
billing_address
string (Billing address)
billing_zipcode
string (Billing zipcode) <= 128 characters
billing_city
string (Billing city) <= 128 characters
billing_country
string (Billing country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
custom_fields
object (AccountCustomFields)
update_from_registers
boolean (Update from registers)

If you uncheck this, account address, company name etc. will not be updated from company registers.

default_payment_terms
integer or null (Default payment terms) [ -2147483648 .. 2147483647 ]

It will override organization level setting.

reseller
string or null <uuid> (Reseller)

Reseller which resells goods and subscriptions to this account.

reseller_code
string (Reseller code)

Should reference the account code (ID from external system). Can be used as an alternative to the UUID-field 'reseller'.

reseller_billing_frequency
string or null (Reseller billing frequency)
Enum: "end_of_month" "start_of_month" "end_of_week" "start_of_week" "start_and_end_of_month"

Frequency of invoicing reseller account for resold goods and subscriptions. Specify this field if you want to use this account as reseller for others. If weekly is chosen invoice will be issued every Sunday around 22:00 UTC. If monthly is chosen invoice will be issued every last day of the month around 22:00 UTC.

Responses

Request samples

Content type
application/json
{
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "payment_gateway_account_set": [
    ],
  • "paymentcard_set": [
    ],
  • "subscription_set": [
    ],
  • "recipient_set": [
    ],
  • "draftinvoiceline_set": [
    ],
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "eu_vat_status": "string",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "register_status": "active",
  • "industry": "string",
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month",
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_export_balance

button

An Account in Fenerum is a named entity who can have one or more subscriptions. Can be used for both companies and people.

Authorizations:
Request Body schema: application/json
company_name
required
string (Company name) [ 1 .. 128 ] characters
code
required
string (Custom ID from external system) [ 1 .. 128 ] characters
erp_id
string or null (Erp id) [ 1 .. 128 ] characters
partner
integer or null (Partner)
ean_invoicing
boolean (Electronic invoicing)

Check this to use GLN/EAN/CVR invoice box instead of email for invoice delivery

einvoicing_identifier_schema
string (Einvoicing identifier schema)
Enum: "GLN" "ORGNR"

Choices depend on the Organization's and Account's countries.

ean_number
string or null (GLN/EAN number) <= 128 characters
invoice_note
string or null (Invoice note) <= 240 characters

Additional text that will be added to description on the invoice.

language
string (Language)
Enum: "en" "da" "nl" "fi" "de" "no" "pl" "pt" "es" "se"

Language of communication: if possible invoices, emails etc. will be translated to this language.

legal_address
required
string (Legal address) non-empty
legal_zipcode
required
string (Legal zipcode) [ 1 .. 128 ] characters
legal_city
required
string (Legal city) [ 1 .. 128 ] characters
legal_country
required
string (Legal country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
legal_vat_number
string (Legal VAT number) <= 128 characters
billing_same_as_legal
boolean (Billing same as legal)
billing_address
string (Billing address)
billing_zipcode
string (Billing zipcode) <= 128 characters
billing_city
string (Billing city) <= 128 characters
billing_country
string (Billing country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
custom_fields
object (AccountCustomFields)
update_from_registers
boolean (Update from registers)

If you uncheck this, account address, company name etc. will not be updated from company registers.

default_payment_terms
integer or null (Default payment terms) [ -2147483648 .. 2147483647 ]

It will override organization level setting.

reseller
string or null <uuid> (Reseller)

Reseller which resells goods and subscriptions to this account.

reseller_code
string (Reseller code)

Should reference the account code (ID from external system). Can be used as an alternative to the UUID-field 'reseller'.

reseller_billing_frequency
string or null (Reseller billing frequency)
Enum: "end_of_month" "start_of_month" "end_of_week" "start_of_week" "start_and_end_of_month"

Frequency of invoicing reseller account for resold goods and subscriptions. Specify this field if you want to use this account as reseller for others. If weekly is chosen invoice will be issued every Sunday around 22:00 UTC. If monthly is chosen invoice will be issued every last day of the month around 22:00 UTC.

Responses

Request samples

Content type
application/json
{
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month"
}

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_accounts_export_mrr_per_month_report

button

An Account in Fenerum is a named entity who can have one or more subscriptions. Can be used for both companies and people.

Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_accounts_export

button

An Account in Fenerum is a named entity who can have one or more subscriptions. Can be used for both companies and people.

Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_accounts_read

button

An Account in Fenerum is a named entity who can have one or more subscriptions. Can be used for both companies and people.

Authorizations:
path Parameters
code
required
string
header Parameters
Fields
string

A comma-separated list of fields to be included in the Account representation.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE' \
  --header 'Fields: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "payment_gateway_account_set": [
    ],
  • "paymentcard_set": [
    ],
  • "subscription_set": [
    ],
  • "recipient_set": [
    ],
  • "draftinvoiceline_set": [
    ],
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "eu_vat_status": "string",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "register_status": "active",
  • "industry": "string",
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month",
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_update

button

Note that ean_invoicing and ean_number can only be set if you have an GLN/EAN invoicing feature enabled.

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json
company_name
required
string (Company name) [ 1 .. 128 ] characters
code
required
string (Custom ID from external system) [ 1 .. 128 ] characters
erp_id
string or null (Erp id) [ 1 .. 128 ] characters
partner
integer or null (Partner)
ean_invoicing
boolean (Electronic invoicing)

Check this to use GLN/EAN/CVR invoice box instead of email for invoice delivery

einvoicing_identifier_schema
string (Einvoicing identifier schema)
Enum: "GLN" "ORGNR"

Choices depend on the Organization's and Account's countries.

ean_number
string or null (GLN/EAN number) <= 128 characters
invoice_note
string or null (Invoice note) <= 240 characters

Additional text that will be added to description on the invoice.

language
string (Language)
Enum: "en" "da" "nl" "fi" "de" "no" "pl" "pt" "es" "se"

Language of communication: if possible invoices, emails etc. will be translated to this language.

legal_address
required
string (Legal address) non-empty
legal_zipcode
required
string (Legal zipcode) [ 1 .. 128 ] characters
legal_city
required
string (Legal city) [ 1 .. 128 ] characters
legal_country
required
string (Legal country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
legal_vat_number
string (Legal VAT number) <= 128 characters
billing_same_as_legal
boolean (Billing same as legal)
billing_address
string (Billing address)
billing_zipcode
string (Billing zipcode) <= 128 characters
billing_city
string (Billing city) <= 128 characters
billing_country
string (Billing country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
custom_fields
object (AccountCustomFields)
update_from_registers
boolean (Update from registers)

If you uncheck this, account address, company name etc. will not be updated from company registers.

default_payment_terms
integer or null (Default payment terms) [ -2147483648 .. 2147483647 ]

It will override organization level setting.

reseller
string or null <uuid> (Reseller)

Reseller which resells goods and subscriptions to this account.

reseller_code
string (Reseller code)

Should reference the account code (ID from external system). Can be used as an alternative to the UUID-field 'reseller'.

reseller_billing_frequency
string or null (Reseller billing frequency)
Enum: "end_of_month" "start_of_month" "end_of_week" "start_of_week" "start_and_end_of_month"

Frequency of invoicing reseller account for resold goods and subscriptions. Specify this field if you want to use this account as reseller for others. If weekly is chosen invoice will be issued every Sunday around 22:00 UTC. If monthly is chosen invoice will be issued every last day of the month around 22:00 UTC.

Responses

Request samples

Content type
application/json
{
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "payment_gateway_account_set": [
    ],
  • "paymentcard_set": [
    ],
  • "subscription_set": [
    ],
  • "recipient_set": [
    ],
  • "draftinvoiceline_set": [
    ],
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "eu_vat_status": "string",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "register_status": "active",
  • "industry": "string",
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month",
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_partial_update

button

Note that ean_invoicing and ean_number can only be set if you have an GLN/EAN invoicing feature enabled.

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json
company_name
required
string (Company name) [ 1 .. 128 ] characters
code
required
string (Custom ID from external system) [ 1 .. 128 ] characters
erp_id
string or null (Erp id) [ 1 .. 128 ] characters
partner
integer or null (Partner)
ean_invoicing
boolean (Electronic invoicing)

Check this to use GLN/EAN/CVR invoice box instead of email for invoice delivery

einvoicing_identifier_schema
string (Einvoicing identifier schema)
Enum: "GLN" "ORGNR"

Choices depend on the Organization's and Account's countries.

ean_number
string or null (GLN/EAN number) <= 128 characters
invoice_note
string or null (Invoice note) <= 240 characters

Additional text that will be added to description on the invoice.

language
string (Language)
Enum: "en" "da" "nl" "fi" "de" "no" "pl" "pt" "es" "se"

Language of communication: if possible invoices, emails etc. will be translated to this language.

legal_address
required
string (Legal address) non-empty
legal_zipcode
required
string (Legal zipcode) [ 1 .. 128 ] characters
legal_city
required
string (Legal city) [ 1 .. 128 ] characters
legal_country
required
string (Legal country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
legal_vat_number
string (Legal VAT number) <= 128 characters
billing_same_as_legal
boolean (Billing same as legal)
billing_address
string (Billing address)
billing_zipcode
string (Billing zipcode) <= 128 characters
billing_city
string (Billing city) <= 128 characters
billing_country
string (Billing country)
Enum: "AF" "AX" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BQ" "BA" "BW" "BV" "BR" "IO" "BN" "BG" "BF" "BI" "CV" "KH" "CM" "CA" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "HR" "CU" "CW" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "SZ" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LI" "LT" "LU" "MO" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "NA" "NR" "NP" "NL" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "KP" "MK" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RW" "BL" "SH" "KN" "LC" "MF" "PM" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SX" "SK" "SI" "SB" "SO" "ZA" "GS" "KR" "SS" "ES" "LK" "SD" "SR" "SJ" "SE" "CH" "SY" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "UM" "US" "UY" "UZ" "VU" "VE" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW"
custom_fields
object (AccountCustomFields)
update_from_registers
boolean (Update from registers)

If you uncheck this, account address, company name etc. will not be updated from company registers.

default_payment_terms
integer or null (Default payment terms) [ -2147483648 .. 2147483647 ]

It will override organization level setting.

reseller
string or null <uuid> (Reseller)

Reseller which resells goods and subscriptions to this account.

reseller_code
string (Reseller code)

Should reference the account code (ID from external system). Can be used as an alternative to the UUID-field 'reseller'.

reseller_billing_frequency
string or null (Reseller billing frequency)
Enum: "end_of_month" "start_of_month" "end_of_week" "start_of_week" "start_and_end_of_month"

Frequency of invoicing reseller account for resold goods and subscriptions. Specify this field if you want to use this account as reseller for others. If weekly is chosen invoice will be issued every Sunday around 22:00 UTC. If monthly is chosen invoice will be issued every last day of the month around 22:00 UTC.

Responses

Request samples

Content type
application/json
{
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "company_name": "string",
  • "code": "string",
  • "erp_id": "string",
  • "partner": 0,
  • "ean_invoicing": true,
  • "einvoicing_identifier_schema": "GLN",
  • "ean_number": "string",
  • "invoice_note": "string",
  • "language": "en",
  • "legal_address": "string",
  • "legal_zipcode": "string",
  • "legal_city": "string",
  • "legal_country": "AF",
  • "legal_vat_number": "string",
  • "billing_same_as_legal": true,
  • "billing_address": "string",
  • "billing_zipcode": "string",
  • "billing_city": "string",
  • "billing_country": "AF",
  • "payment_gateway_account_set": [
    ],
  • "paymentcard_set": [
    ],
  • "subscription_set": [
    ],
  • "recipient_set": [
    ],
  • "draftinvoiceline_set": [
    ],
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "eu_vat_status": "string",
  • "custom_fields": { },
  • "update_from_registers": true,
  • "register_status": "active",
  • "industry": "string",
  • "default_payment_terms": -2147483648,
  • "reseller": "16bab917-518b-4590-b8d5-48af7a327279",
  • "reseller_code": "string",
  • "reseller_billing_frequency": "end_of_month",
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_generate_invoice

button

This endpoint will create an invoice containing all DraftInvoiceLines that are not set to appear on the next invoice. There will be a separate invoice for every different currency used by DraftInvoiceLines.

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json
collection_method
required
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"
payment_terms
integer (Payment terms)

Default value is the account setting 'Default payment terms'. When this setting is not set, the organization default will be used.

Responses

Request samples

Content type
application/json
{
  • "collection_method": "payment_card",
  • "payment_terms": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_accounts_deprecated_generate_invoice Deprecated

button

An Account in Fenerum is a named entity who can have one or more subscriptions. Can be used for both companies and people.

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json
collection_method
required
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"
payment_terms
integer (Payment terms)

Default value is the account setting 'Default payment terms'. When this setting is not set, the organization default will be used.

Responses

Request samples

Content type
application/json
{
  • "collection_method": "payment_card",
  • "payment_terms": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_accounts_payment-gateways_read

button

One set of payment_gateway and payment_gateway_account_id is allowed per a customer account. Meaning each of your customers needs to match 1-to-1 with customer accounts set up in each payment gateway you use.

Authorizations:
path Parameters
code
required
string

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/payment-gateways/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_accounts_payment-gateways_partial_update

button

One set of payment_gateway and payment_gateway_account_id is allowed per a customer account. Meaning each of your customers needs to match 1-to-1 with customer accounts set up in each payment gateway you use.

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json
Array
payment_gateway
required
string (Payment gateway)
Enum: "stripe" "stripe_new" "noop" "quickpay" "dibs" "dibs_easy"
payment_gateway_account_id
required
string (Payment gateway account id) [ 1 .. 256 ] characters

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_accounts_start_pending_subscriptions

button

This endpoint will trigger the renew() method on all pending_for_grouped subscriptions of the account.

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "invoice_number": 0,
  • "external_invoice_number": "string",
  • "invoice_api_url": "string",
  • "account_uuid": "string",
  • "account_code": "string",
  • "account": {
    },
  • "pay_to_bank_account": 0,
  • "date": "2019-08-24",
  • "due_date": "2019-08-24",
  • "currency": "DKK",
  • "status": "open",
  • "kickback_status": "commission_pending",
  • "collection_method": "payment_card",
  • "pdf_base64": "string",
  • "total": "string",
  • "subtotal": "string",
  • "vat": "string",
  • "balance": "string",
  • "invoiceline_set": [
    ],
  • "imported": true,
  • "import_source": "manual",
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_subscribe

button

Subscribe an account to a plan terms. This endpoint creates a new subscription and cancels all other subscriptions. Do not use this along with Subscription POST and PUT endpoints.

This endpoint will make a pro-rated invoice immediately if there is a subscription being replaced on the account.

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json
terms
required
string <uuid> (Terms)
quantity
required
integer (Quantity) >= 1
collection_method
required
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"
group_on_invoice
boolean (Group on invoice)
Default: false

Responses

Request samples

Content type
application/json
{
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "quantity": 1,
  • "collection_method": "payment_card",
  • "group_on_invoice": false
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "account_code": "6097a4f5-935a-4a3b-87a0-f379ae15fc06",
  • "account": {
    },
  • "terms": {
    },
  • "plan": {
    },
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "next_renewal_date": "2019-08-24T14:15:22Z",
  • "last_renewal_date": "2019-08-24T14:15:22Z",
  • "base_renewal_date": "2019-08-24T14:15:22Z",
  • "original_start_date": "2019-08-24T14:15:22Z",
  • "quantity": 2147483647,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": -2147483648,
  • "effective_payment_terms": "string",
  • "pre_renewal_days_offset": 32767,
  • "po_number": "string",
  • "invoice_supplement": "string",
  • "override_price": "string",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "case_number": "string",
  • "status": "active",
  • "current_mrr": "string",
  • "committed_mrr": "string",
  • "final_price": "string",
  • "churn_reason": {
    },
  • "custom_churn_reason": "string",
  • "custom_fields": { },
  • "model": "string",
  • "schema": "string"
}

Subscription

api_v1_subscriptions_list

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

plan
string

Filter using Plan UUID

terms
string

Filter using Plan Terms UUID

status
string
collection_method
string
account_active_payment_method
string
set_to_expire
string
start_date__lte
string

Format: YYYY-MM-DD

start_date__org_tz_lte
string

Format: YYYY-MM-DD

start_date__gte
string

Format: YYYY-MM-DD

start_date__org_tz_gte
string

Format: YYYY-MM-DD

next_renewal_date__lte
string

Format: YYYY-MM-DD

next_renewal_date__org_tz_lte
string

Format: YYYY-MM-DD

next_renewal_date__gte
string

Format: YYYY-MM-DD

next_renewal_date__org_tz_gte
string

Format: YYYY-MM-DD

end_date__lte
string

Format: YYYY-MM-DD

end_date__org_tz_lte
string

Format: YYYY-MM-DD

end_date__gte
string

Format: YYYY-MM-DD

end_date__org_tz_gte
string

Format: YYYY-MM-DD

last_modified_date__lte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_lte
string

Format: YYYY-MM-DD

last_modified_date__gte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_gte
string

Format: YYYY-MM-DD

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/?account=SOME_STRING_VALUE&plan=SOME_STRING_VALUE&terms=SOME_STRING_VALUE&status=SOME_STRING_VALUE&collection_method=SOME_STRING_VALUE&account_active_payment_method=SOME_STRING_VALUE&set_to_expire=SOME_STRING_VALUE&start_date__lte=SOME_STRING_VALUE&start_date__org_tz_lte=SOME_STRING_VALUE&start_date__gte=SOME_STRING_VALUE&start_date__org_tz_gte=SOME_STRING_VALUE&next_renewal_date__lte=SOME_STRING_VALUE&next_renewal_date__org_tz_lte=SOME_STRING_VALUE&next_renewal_date__gte=SOME_STRING_VALUE&next_renewal_date__org_tz_gte=SOME_STRING_VALUE&end_date__lte=SOME_STRING_VALUE&end_date__org_tz_lte=SOME_STRING_VALUE&end_date__gte=SOME_STRING_VALUE&end_date__org_tz_gte=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__org_tz_lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&last_modified_date__org_tz_gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_subscriptions_create

button

Authorizations:
Request Body schema: application/json
account
required
string (Account)

Account code (ID from external system)

terms
required
string <uuid> (Terms)
pre_renewal_invoicing
boolean (Pre renewal invoicing)
Default: false

DEPRECATED: use pre_renewal_days_offset instead

custom_fields
object (SubscriptionCustomFields)
start_date
string or null <date-time> (Start date)

If not set it will be set to the moment of creation to start immediately.

custom_churn_reason
string or null (Custom Churn Reason) <= 100 characters
quantity
integer (Quantity) [ 0 .. 2147483647 ]
Default: 1

Number of subscribed users

collection_method
required
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"
group_on_invoice
boolean (Group on invoice)

Subscription renewing on the same date, with same currency, payment terms, collection method and PO number will be charged on the single invoice.

payment_terms
integer or null (Payment terms) [ 0 .. 2147483647 ]
Default: 0

Days until payment, 0 means on receipt. If left empty default value will be used. Default value is taken from account setting (Default payment terms). If account setting is empty it will default to the organization setting.

override_price
string or null <decimal> (Override price)

Specify the price and override the one form the Plan Term. If any discounts are applicable to this Subscription, they will be applied to this price.

pre_renewal_days_offset
integer (Pre-renewal invoicing) [ 0 .. 32767 ]
Default: 0

Number of days before the renewal date a new invoice should be generated. It can be set only for forward-charging plans.

reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters
invoice_supplement
string or null (Invoice supplement)

Additional text that will be added to description on the invoice line.

churn_reason
string or null <uuid> (Churn Reason)

You can define available churn reasons in Objects Settings

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "pre_renewal_invoicing": false,
  • "custom_fields": { },
  • "start_date": "2019-08-24T14:15:22Z",
  • "custom_churn_reason": "string",
  • "quantity": 1,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": 0,
  • "override_price": "string",
  • "pre_renewal_days_offset": 0,
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "churn_reason": "b06e9988-1cd3-4228-a984-64110b49a9ec"
}

Response samples

Content type
application/json
{
  • "account": "string",
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "pre_renewal_invoicing": false,
  • "custom_fields": { },
  • "model": "string",
  • "schema": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "custom_churn_reason": "string",
  • "quantity": 1,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": 0,
  • "override_price": "string",
  • "pre_renewal_days_offset": 0,
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "churn_reason": "b06e9988-1cd3-4228-a984-64110b49a9ec"
}

api_v1_subscriptions_activity_months

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/activity-months/?ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_subscriptions_deprecated_activity_months Deprecated

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/activity_months/?ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_subscriptions_export

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_subscriptions_mrr_per_month

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
year
required
integer
month
required
integer
subscription
string <uuid>

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/mrr-per-month/?year=SOME_INTEGER_VALUE&month=SOME_INTEGER_VALUE&subscription=SOME_STRING_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_subscriptions_deprecated_mrr_per_month Deprecated

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
year
required
integer
month
required
integer
subscription
string <uuid>

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/mrr_per_month/?year=SOME_INTEGER_VALUE&month=SOME_INTEGER_VALUE&subscription=SOME_STRING_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_subscriptions_retention_cohort

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/retention-cohort/?ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_subscriptions_deprecated_retention_cohort Deprecated

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/retention_cohort/?ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_subscriptions_total_mrr

button

Returns current and future MRRs.

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

plan
string

Filter using Plan UUID

terms
string

Filter using Plan Terms UUID

status
string
collection_method
string
account_active_payment_method
string
set_to_expire
string
start_date__lte
string

Format: YYYY-MM-DD

start_date__org_tz_lte
string

Format: YYYY-MM-DD

start_date__gte
string

Format: YYYY-MM-DD

start_date__org_tz_gte
string

Format: YYYY-MM-DD

next_renewal_date__lte
string

Format: YYYY-MM-DD

next_renewal_date__org_tz_lte
string

Format: YYYY-MM-DD

next_renewal_date__gte
string

Format: YYYY-MM-DD

next_renewal_date__org_tz_gte
string

Format: YYYY-MM-DD

end_date__lte
string

Format: YYYY-MM-DD

end_date__org_tz_lte
string

Format: YYYY-MM-DD

end_date__gte
string

Format: YYYY-MM-DD

end_date__org_tz_gte
string

Format: YYYY-MM-DD

last_modified_date__lte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_lte
string

Format: YYYY-MM-DD

last_modified_date__gte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_gte
string

Format: YYYY-MM-DD

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/total-mrr/?account=SOME_STRING_VALUE&plan=SOME_STRING_VALUE&terms=SOME_STRING_VALUE&status=SOME_STRING_VALUE&collection_method=SOME_STRING_VALUE&account_active_payment_method=SOME_STRING_VALUE&set_to_expire=SOME_STRING_VALUE&start_date__lte=SOME_STRING_VALUE&start_date__org_tz_lte=SOME_STRING_VALUE&start_date__gte=SOME_STRING_VALUE&start_date__org_tz_gte=SOME_STRING_VALUE&next_renewal_date__lte=SOME_STRING_VALUE&next_renewal_date__org_tz_lte=SOME_STRING_VALUE&next_renewal_date__gte=SOME_STRING_VALUE&next_renewal_date__org_tz_gte=SOME_STRING_VALUE&end_date__lte=SOME_STRING_VALUE&end_date__org_tz_lte=SOME_STRING_VALUE&end_date__gte=SOME_STRING_VALUE&end_date__org_tz_gte=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__org_tz_lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&last_modified_date__org_tz_gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "total_mrr": "string",
  • "future_mrr": "string",
  • "subscriptions_count": 0,
  • "model": "string",
  • "schema": "string"
}

api_v1_subscriptions_deprecated_total_mrr Deprecated

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

plan
string

Filter using Plan UUID

terms
string

Filter using Plan Terms UUID

status
string
collection_method
string
account_active_payment_method
string
set_to_expire
string
start_date__lte
string

Format: YYYY-MM-DD

start_date__org_tz_lte
string

Format: YYYY-MM-DD

start_date__gte
string

Format: YYYY-MM-DD

start_date__org_tz_gte
string

Format: YYYY-MM-DD

next_renewal_date__lte
string

Format: YYYY-MM-DD

next_renewal_date__org_tz_lte
string

Format: YYYY-MM-DD

next_renewal_date__gte
string

Format: YYYY-MM-DD

next_renewal_date__org_tz_gte
string

Format: YYYY-MM-DD

end_date__lte
string

Format: YYYY-MM-DD

end_date__org_tz_lte
string

Format: YYYY-MM-DD

end_date__gte
string

Format: YYYY-MM-DD

end_date__org_tz_gte
string

Format: YYYY-MM-DD

last_modified_date__lte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_lte
string

Format: YYYY-MM-DD

last_modified_date__gte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_gte
string

Format: YYYY-MM-DD

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/total_mrr/?account=SOME_STRING_VALUE&plan=SOME_STRING_VALUE&terms=SOME_STRING_VALUE&status=SOME_STRING_VALUE&collection_method=SOME_STRING_VALUE&account_active_payment_method=SOME_STRING_VALUE&set_to_expire=SOME_STRING_VALUE&start_date__lte=SOME_STRING_VALUE&start_date__org_tz_lte=SOME_STRING_VALUE&start_date__gte=SOME_STRING_VALUE&start_date__org_tz_gte=SOME_STRING_VALUE&next_renewal_date__lte=SOME_STRING_VALUE&next_renewal_date__org_tz_lte=SOME_STRING_VALUE&next_renewal_date__gte=SOME_STRING_VALUE&next_renewal_date__org_tz_gte=SOME_STRING_VALUE&end_date__lte=SOME_STRING_VALUE&end_date__org_tz_lte=SOME_STRING_VALUE&end_date__gte=SOME_STRING_VALUE&end_date__org_tz_gte=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__org_tz_lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&last_modified_date__org_tz_gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "total_mrr": "string",
  • "future_mrr": "string",
  • "subscriptions_count": 0,
  • "model": "string",
  • "schema": "string"
}

api_v1_subscriptions_read

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this subscription.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/subscriptions/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "account_code": "6097a4f5-935a-4a3b-87a0-f379ae15fc06",
  • "account": {
    },
  • "terms": {
    },
  • "plan": {
    },
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "next_renewal_date": "2019-08-24T14:15:22Z",
  • "last_renewal_date": "2019-08-24T14:15:22Z",
  • "base_renewal_date": "2019-08-24T14:15:22Z",
  • "original_start_date": "2019-08-24T14:15:22Z",
  • "quantity": 2147483647,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": -2147483648,
  • "effective_payment_terms": "string",
  • "pre_renewal_days_offset": 32767,
  • "po_number": "string",
  • "invoice_supplement": "string",
  • "override_price": "string",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "case_number": "string",
  • "status": "active",
  • "current_mrr": "string",
  • "committed_mrr": "string",
  • "final_price": "string",
  • "churn_reason": {
    },
  • "custom_churn_reason": "string",
  • "custom_fields": { },
  • "model": "string",
  • "schema": "string"
}

api_v1_subscriptions_update

button

Please consult documentation for details about updating a subscription.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this subscription.

Request Body schema: application/json
terms
string <uuid> (Terms)
prorate
boolean (Prorate)
Default: true

DEPRECATED: use change_type instead

change_type
string (Change type)
Enum: "immediate" "at_specified_time" "at_renewal"
prorate_date
string <date-time> (Prorate date)

Exact date at which scheduled prorate will happen. Provide this only if you have chosen 'at_specified_time' in the change_type field.

change_renewal
string (Change renewal)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11

0 means next renewal, 1 means second renewal etc. Provide this only if you have chosen 'at_renewal' in the change_type field.

early_renewal
boolean (Early renewal)
Default: false

Provide this only if you have chosen 'immediate' or 'at_specified_time' in the change_type field.Selecting that option will cause renewing that subscription and create a refund for remaining period.This will happen right now (immediate option) or at a specified time (at_specified_time option)

custom_fields
object (SubscriptionCustomFields)
start_date
string or null <date-time> (Start date)

Can't be changed after subscription already started or renewed.

custom_churn_reason
string or null (Custom Churn Reason) <= 100 characters
quantity
integer (Quantity) [ 0 .. 2147483647 ]
Default: 1

Number of subscribed users

collection_method
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"
group_on_invoice
boolean (Group on invoice)

Subscription renewing on the same date, with same currency, payment terms, collection method and PO number will be charged on the single invoice.

payment_terms
integer or null (Payment terms) [ 0 .. 2147483647 ]
Default: 0

Days until payment, 0 means on receipt. If left empty default value will be used. Default value is taken from account setting (Default payment terms). If account setting is empty it will default to the organization setting.

override_price
string or null <decimal> (Override price)

Specify the price and override the one form the Plan Term. If any discounts are applicable to this Subscription, they will be applied to this price.

pre_renewal_days_offset
integer (Pre-renewal invoicing) [ 0 .. 32767 ]
Default: 0

Number of days before the renewal date a new invoice should be generated. It can be set only for forward-charging plans.

reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters
invoice_supplement
string or null (Invoice supplement)

Additional text that will be added to description on the invoice line.

churn_reason
string or null <uuid> (Churn Reason)

You can define available churn reasons in Objects Settings

Responses

Request samples

Content type
application/json
{
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "prorate": true,
  • "change_type": "immediate",
  • "prorate_date": "2019-08-24T14:15:22Z",
  • "change_renewal": 0,
  • "early_renewal": false,
  • "custom_fields": { },
  • "start_date": "2019-08-24T14:15:22Z",
  • "custom_churn_reason": "string",
  • "quantity": 1,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": 0,
  • "override_price": "string",
  • "pre_renewal_days_offset": 0,
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "churn_reason": "b06e9988-1cd3-4228-a984-64110b49a9ec"
}

Response samples

Content type
application/json
{
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "prorate": true,
  • "change_type": "immediate",
  • "prorate_date": "2019-08-24T14:15:22Z",
  • "change_renewal": 0,
  • "early_renewal": false,
  • "custom_fields": { },
  • "model": "string",
  • "schema": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "custom_churn_reason": "string",
  • "quantity": 1,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": 0,
  • "override_price": "string",
  • "pre_renewal_days_offset": 0,
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "churn_reason": "b06e9988-1cd3-4228-a984-64110b49a9ec"
}

api_v1_subscriptions_partial_update

button

Subscriptions are instances of plan terms on a specific account. You can modify subscriptions or cancel them.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this subscription.

Request Body schema: application/json
terms
string <uuid> (Terms)
prorate
boolean (Prorate)
Default: true

DEPRECATED: use change_type instead

change_type
string (Change type)
Enum: "immediate" "at_specified_time" "at_renewal"
prorate_date
string <date-time> (Prorate date)

Exact date at which scheduled prorate will happen. Provide this only if you have chosen 'at_specified_time' in the change_type field.

change_renewal
string (Change renewal)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11

0 means next renewal, 1 means second renewal etc. Provide this only if you have chosen 'at_renewal' in the change_type field.

early_renewal
boolean (Early renewal)
Default: false

Provide this only if you have chosen 'immediate' or 'at_specified_time' in the change_type field.Selecting that option will cause renewing that subscription and create a refund for remaining period.This will happen right now (immediate option) or at a specified time (at_specified_time option)

custom_fields
object (SubscriptionCustomFields)
start_date
string or null <date-time> (Start date)

Can't be changed after subscription already started or renewed.

custom_churn_reason
string or null (Custom Churn Reason) <= 100 characters
quantity
integer (Quantity) [ 0 .. 2147483647 ]
Default: 1

Number of subscribed users

collection_method
string (Collection method)
Enum: "payment_card" "invoice" "direct_debit"
group_on_invoice
boolean (Group on invoice)

Subscription renewing on the same date, with same currency, payment terms, collection method and PO number will be charged on the single invoice.

payment_terms
integer or null (Payment terms) [ 0 .. 2147483647 ]
Default: 0

Days until payment, 0 means on receipt. If left empty default value will be used. Default value is taken from account setting (Default payment terms). If account setting is empty it will default to the organization setting.

override_price
string or null <decimal> (Override price)

Specify the price and override the one form the Plan Term. If any discounts are applicable to this Subscription, they will be applied to this price.

pre_renewal_days_offset
integer (Pre-renewal invoicing) [ 0 .. 32767 ]
Default: 0

Number of days before the renewal date a new invoice should be generated. It can be set only for forward-charging plans.

reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters
invoice_supplement
string or null (Invoice supplement)

Additional text that will be added to description on the invoice line.

churn_reason
string or null <uuid> (Churn Reason)

You can define available churn reasons in Objects Settings

Responses

Request samples

Content type
application/json
{
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "prorate": true,
  • "change_type": "immediate",
  • "prorate_date": "2019-08-24T14:15:22Z",
  • "change_renewal": 0,
  • "early_renewal": false,
  • "custom_fields": { },
  • "start_date": "2019-08-24T14:15:22Z",
  • "custom_churn_reason": "string",
  • "quantity": 1,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": 0,
  • "override_price": "string",
  • "pre_renewal_days_offset": 0,
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "churn_reason": "b06e9988-1cd3-4228-a984-64110b49a9ec"
}

Response samples

Content type
application/json
{
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "prorate": true,
  • "change_type": "immediate",
  • "prorate_date": "2019-08-24T14:15:22Z",
  • "change_renewal": 0,
  • "early_renewal": false,
  • "custom_fields": { },
  • "model": "string",
  • "schema": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "custom_churn_reason": "string",
  • "quantity": 1,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": 0,
  • "override_price": "string",
  • "pre_renewal_days_offset": 0,
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "churn_reason": "b06e9988-1cd3-4228-a984-64110b49a9ec"
}

api_v1_subscriptions_cancel

button

Please consult [charging types documentation] (https://www.fenerum.com/docs/billing/subscriptions/charging-options/#cancelling-subscriptions) to see the possible results of cancelling a subscriptions

Subscription can't be canceled if:

  1. It has a status of expired or not_renewing
  2. There is an active contract (i.e. before the expiration of commitment length) on subscription's plan terms
Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this subscription.

Request Body schema: application/json
cancellation_type
required
string (Cancellation type)
Enum: "full_refund" "at_renewal" "today" "at_specified_time" "cancel_invalid"
cancel_renewal
integer (Cancel renewal)
Enum: 0 1 2 3 4 5 6 7 8 9 10 11

0 means next renewal, 1 means second renewal etc. Provide this only if you have chosen 'at_renewal' in the cancellation_type field.

cancel_date
string <date-time> (Cancel date)

Responses

Request samples

Content type
application/json
{
  • "cancellation_type": "full_refund",
  • "cancel_renewal": 0,
  • "cancel_date": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "account_code": "6097a4f5-935a-4a3b-87a0-f379ae15fc06",
  • "account": {
    },
  • "terms": {
    },
  • "plan": {
    },
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "next_renewal_date": "2019-08-24T14:15:22Z",
  • "last_renewal_date": "2019-08-24T14:15:22Z",
  • "base_renewal_date": "2019-08-24T14:15:22Z",
  • "original_start_date": "2019-08-24T14:15:22Z",
  • "quantity": 2147483647,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": -2147483648,
  • "effective_payment_terms": "string",
  • "pre_renewal_days_offset": 32767,
  • "po_number": "string",
  • "invoice_supplement": "string",
  • "override_price": "string",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "case_number": "string",
  • "status": "active",
  • "current_mrr": "string",
  • "committed_mrr": "string",
  • "final_price": "string",
  • "churn_reason": {
    },
  • "custom_churn_reason": "string",
  • "custom_fields": { },
  • "model": "string",
  • "schema": "string"
}

api_v1_subscriptions_reactivate

button

A subscription can be reactivated when its status is either not_renewing or not_starting. The corresponding activity of the type cancel will then be deleted.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this subscription.

Responses

Request samples

curl --request POST \
  --url https://app.fenerum.com/api/v1/subscriptions/%7Buuid%7D/reactivate/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "account_code": "6097a4f5-935a-4a3b-87a0-f379ae15fc06",
  • "account": {
    },
  • "terms": {
    },
  • "plan": {
    },
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "created_date": "2019-08-24T14:15:22Z",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "next_renewal_date": "2019-08-24T14:15:22Z",
  • "last_renewal_date": "2019-08-24T14:15:22Z",
  • "base_renewal_date": "2019-08-24T14:15:22Z",
  • "original_start_date": "2019-08-24T14:15:22Z",
  • "quantity": 2147483647,
  • "collection_method": "payment_card",
  • "group_on_invoice": true,
  • "payment_terms": -2147483648,
  • "effective_payment_terms": "string",
  • "pre_renewal_days_offset": 32767,
  • "po_number": "string",
  • "invoice_supplement": "string",
  • "override_price": "string",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "case_number": "string",
  • "status": "active",
  • "current_mrr": "string",
  • "committed_mrr": "string",
  • "final_price": "string",
  • "churn_reason": {
    },
  • "custom_churn_reason": "string",
  • "custom_fields": { },
  • "model": "string",
  • "schema": "string"
}

OrganizationMember

api_v1_organization-members_available

button

List available Organization Members

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/organization-members/available/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_organization-members_current

button

Retrieve details of the currently authenticated Organization Member

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/organization-members/current/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "language": null,
  • "initials": "string",
  • "color": "string",
  • "organization": {
    },
  • "user": {
    },
  • "permissions": [
    ],
  • "model": "string",
  • "schema": "string"
}

BankAccount

api_v1_bank-accounts_list

button

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/bank-accounts/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_bank-accounts_cash_balance

button

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/bank-accounts/cash-balance/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "cash_balance": "string"
}

api_v1_bank-accounts_cash_flow

button

This endpoint will return an average of all bank account lines summarized in the organization's default currency for the last three whole months.

It only includes bank account lines from bank accounts that are active and not hidden. Amounts are converted to the organization's default currency using the exchange rate for the current day.

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/bank-accounts/cash-flow/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "cash_flow": "string"
}

api_v1_bank-accounts_read

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this bank account.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/bank-accounts/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "external_id": "string",
  • "account_name": "string",
  • "model": "string",
  • "schema": "string"
}

Plan

api_v1_plans_list

button

Authorizations:
query Parameters
code
string
with_code
string
last_modified_date__lte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_lte
string

Format: YYYY-MM-DD

last_modified_date__gte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_gte
string

Format: YYYY-MM-DD

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/plans/?code=SOME_STRING_VALUE&with_code=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__org_tz_lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&last_modified_date__org_tz_gte=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_plans_create

button

Authorizations:
Request Body schema: application/json
name
required
string (Name) [ 1 .. 128 ] characters
code
string or null (Code) <= 128 characters

ID from external system. If you don't have one you can just put any unique value here by which you will be able to reference this object on other items.

description
string or null (Description)
collect_vat
boolean (Collect vat)
vat_type
required
string (Vat type)
Enum: "physical" "services" "unknown"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "code": "string",
  • "description": "string",
  • "collect_vat": true,
  • "vat_type": "physical"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "code": "string",
  • "description": "string",
  • "collect_vat": true,
  • "vat_type": "physical",
  • "planterms_set": [
    ],
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

api_v1_plans_calculate

button

Authorizations:
Request Body schema: application/json
account_code
string (Account code) non-empty
account_country_code
required
string (Account country code) non-empty
terms
required
string <uuid> (Terms)
quantity
required
integer (Quantity)

Responses

Request samples

Content type
application/json
{
  • "account_code": "string",
  • "account_country_code": "string",
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "quantity": 0
}

Response samples

Content type
application/json
{
  • "account_code": "string",
  • "account_country_code": "string",
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "quantity": 0,
  • "model": "string",
  • "schema": "string"
}

api_v1_plans_read

button

Authorizations:
path Parameters
identifier
required
string
header Parameters
Lookup-Field
string

Name of field used as resource identifier. Possible values: uuid, code

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/plans/%7Bidentifier%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE' \
  --header 'Lookup-Field: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "code": "string",
  • "description": "string",
  • "collect_vat": true,
  • "vat_type": "physical",
  • "planterms_set": [
    ],
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

api_v1_plans_partial_update

button

Authorizations:
path Parameters
identifier
required
string
header Parameters
Lookup-Field
string

Name of field used as resource identifier. Possible values: uuid, code

Request Body schema: application/json
name
required
string (Name) [ 1 .. 128 ] characters
code
string or null (Code) <= 128 characters

ID from external system. If you don't have one you can just put any unique value here by which you will be able to reference this object on other items.

description
string or null (Description)
collect_vat
boolean (Collect vat)
vat_type
required
string (Vat type)
Enum: "physical" "services" "unknown"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "code": "string",
  • "description": "string",
  • "collect_vat": true,
  • "vat_type": "physical"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "code": "string",
  • "description": "string",
  • "collect_vat": true,
  • "vat_type": "physical",
  • "planterms_set": [
    ],
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

SubscriptionChange

api_v1_subscriptions_changes_list

button

Subscription Changes describe applied or scheduled changes of Subscription attributes that affect its price or MRR

Authorizations:
path Parameters
subscription_uuid
required
string
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/subscriptions/%7Bsubscription_uuid%7D/changes/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_subscriptions_changes_read

button

Subscription Changes describe applied or scheduled changes of Subscription attributes that affect its price or MRR

Authorizations:
path Parameters
subscription_uuid
required
string
uuid
required
string <uuid>

A UUID string identifying this subscription change.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/subscriptions/%7Bsubscription_uuid%7D/changes/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "planned_apply_date": "2019-08-24T14:15:22Z",
  • "change_type": "immediate",
  • "state": "scheduled",
  • "applied_at": "2019-08-24T14:15:22Z",
  • "terms": {
    },
  • "plan": {
    },
  • "quantity": -2147483648,
  • "override_price": "string",
  • "early_renewal": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_subscriptions_changes_cancel

button

Cancel a scheduled Subscription Change

Authorizations:
path Parameters
subscription_uuid
required
string
uuid
required
string <uuid>

A UUID string identifying this subscription change.

Request Body schema: application/json
object (SubscriptionChangeCancel)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "planned_apply_date": "2019-08-24T14:15:22Z",
  • "change_type": "immediate",
  • "state": "scheduled",
  • "applied_at": "2019-08-24T14:15:22Z",
  • "terms": {
    },
  • "plan": {
    },
  • "quantity": -2147483648,
  • "override_price": "string",
  • "early_renewal": true,
  • "model": "string",
  • "schema": "string"
}

api

api_v1_cash-flow_read

button

Authorizations:
path Parameters
month
required
stringMM-YYYY

Get cashflow for given month.

query Parameters
revenue_base
string
Default: "invoice"
Enum: "invoice" "due"

Which date should be taken as base for calculcation

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/cash-flow/%7Bmonth%7D/?revenue_base=invoice' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "customer_payments_forecast": "string",
  • "customer_invoices_vat": "string",
  • "customer_invoices_due": "string",
  • "customer_invoices_paid": "string",
  • "revenue_total": "string",
  • "supplier_payments_due": "string",
  • "supplier_payments_paid": "string",
  • "payments_total": "string",
  • "customer_payments_forecast_invoice": "string",
  • "customer_payments_forecast_payment_card": "string",
  • "customer_payments_forecast_direct_debit": "string",
  • "balance": "string"
}

api_v1_erp-accounts_list

button

Authorizations:

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/erp-accounts/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_erp-accounts_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this erp account.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/erp-accounts/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "display_name": "string",
  • "account_number": -2147483648,
  • "model": "string",
  • "schema": "string"
}

api_v1_exports_download

button

Authorizations:
path Parameters
id
required
string

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/exports/%7Bid%7D/download/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json

api_v1_revenue-recognition-algorithms_examples

button

Authorizations:

Responses

Request samples

curl --request POST \
  --url https://app.fenerum.com/api/v1/revenue-recognition-algorithms/examples/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

api_v1_search_list

button

Authorizations:
query Parameters
q
string

Search query to look for Accounts, Invoices, Plans, Products, Revenue Groups, Subscriptions, Supplier Invoices, Suppliers, Transactions

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/search/?q=SOME_STRING_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "accounts": {
    },
  • "subscriptions": {
    },
  • "invoices": {
    },
  • "transactions": {
    },
  • "plans": {
    },
  • "products": {
    },
  • "revenue_groups": {
    },
  • "suppliers": {
    },
  • "supplier_invoices": {
    }
}

api_v1_vat-payments_upcoming_vat_payment

button

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/vat-payments/upcoming-vat-payment/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

ChurnReason

api_v1_churn-reasons_list

button

Authorizations:
query Parameters
is_active
string
ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/churn-reasons/?is_active=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_churn-reasons_create

button

Authorizations:
Request Body schema: application/json
name
required
string (Name) [ 1 .. 50 ] characters
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "is_active": true,
  • "usage_count": 0,
  • "model": "string",
  • "schema": "string"
}

api_v1_churn-reasons_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Churn Reason.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/churn-reasons/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "is_active": true,
  • "usage_count": 0,
  • "model": "string",
  • "schema": "string"
}

api_v1_churn-reasons_update

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Churn Reason.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 50 ] characters
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "is_active": true,
  • "usage_count": 0,
  • "model": "string",
  • "schema": "string"
}

api_v1_churn-reasons_partial_update

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Churn Reason.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 50 ] characters
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "is_active": true,
  • "usage_count": 0,
  • "model": "string",
  • "schema": "string"
}

api_v1_churn-reasons_delete

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Churn Reason.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/churn-reasons/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Contract

api_v1_accounts_contracts_list

button

Authorizations:
path Parameters
code
required
string
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/contracts/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_accounts_contracts_create

button

Authorizations:
path Parameters
code
required
string
Request Body schema: application/json
plan_terms
required
string <uuid> (Plan terms)
start_date
required
string <date-time> (Start date)
end_date
string or null <date-time> (End date)
commitment_length
integer (Commitment length (months)) [ -2147483648 .. 2147483647 ]

Before the commitment length is fulfilled subscription can't be canceled

exclusive_tiers
boolean (Discounts are exclusive (use best discount only))

Whether all tiers with met requirements are included in the discount (false) or only the one giving the best subscription price (true)

Responses

Request samples

Content type
application/json
{
  • "plan_terms": "66f9efe8-6b6a-483c-a74b-97841f59bbd0",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "commitment_length": -2147483648,
  • "exclusive_tiers": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "plan_terms": "66f9efe8-6b6a-483c-a74b-97841f59bbd0",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "commitment_length": -2147483648,
  • "exclusive_tiers": true,
  • "contracttier_set": [
    ],
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_read

button

Authorizations:
path Parameters
code
required
string
uuid
required
string <uuid>

A UUID string identifying this contract.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/contracts/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "plan_terms": "66f9efe8-6b6a-483c-a74b-97841f59bbd0",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "commitment_length": -2147483648,
  • "exclusive_tiers": true,
  • "contracttier_set": [
    ],
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_update

button

Authorizations:
path Parameters
code
required
string
uuid
required
string <uuid>

A UUID string identifying this contract.

Request Body schema: application/json
plan_terms
required
string <uuid> (Plan terms)
start_date
required
string <date-time> (Start date)
end_date
string or null <date-time> (End date)
commitment_length
integer (Commitment length (months)) [ -2147483648 .. 2147483647 ]

Before the commitment length is fulfilled subscription can't be canceled

exclusive_tiers
boolean (Discounts are exclusive (use best discount only))

Whether all tiers with met requirements are included in the discount (false) or only the one giving the best subscription price (true)

Responses

Request samples

Content type
application/json
{
  • "plan_terms": "66f9efe8-6b6a-483c-a74b-97841f59bbd0",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "commitment_length": -2147483648,
  • "exclusive_tiers": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "plan_terms": "66f9efe8-6b6a-483c-a74b-97841f59bbd0",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "commitment_length": -2147483648,
  • "exclusive_tiers": true,
  • "contracttier_set": [
    ],
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_partial_update

button

Authorizations:
path Parameters
code
required
string
uuid
required
string <uuid>

A UUID string identifying this contract.

Request Body schema: application/json
plan_terms
required
string <uuid> (Plan terms)
start_date
required
string <date-time> (Start date)
end_date
string or null <date-time> (End date)
commitment_length
integer (Commitment length (months)) [ -2147483648 .. 2147483647 ]

Before the commitment length is fulfilled subscription can't be canceled

exclusive_tiers
boolean (Discounts are exclusive (use best discount only))

Whether all tiers with met requirements are included in the discount (false) or only the one giving the best subscription price (true)

Responses

Request samples

Content type
application/json
{
  • "plan_terms": "66f9efe8-6b6a-483c-a74b-97841f59bbd0",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "commitment_length": -2147483648,
  • "exclusive_tiers": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "plan_terms": "66f9efe8-6b6a-483c-a74b-97841f59bbd0",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z",
  • "commitment_length": -2147483648,
  • "exclusive_tiers": true,
  • "contracttier_set": [
    ],
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_delete

button

Authorizations:
path Parameters
code
required
string
uuid
required
string <uuid>

A UUID string identifying this contract.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/contracts/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

KickbackContract

api_v1_kickback_contracts_list

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/kickback/contracts/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_kickback_contracts_create

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
Request Body schema: application/json
name
required
string (Name) [ 1 .. 128 ] characters
include_upgrades
boolean (Include upgrades)
indefinite
boolean (Indefinite)
duration_amount
integer or null (Duration amount) [ -2147483648 .. 2147483647 ]
duration_unit
string or null (Duration unit)
Enum: "month" "invoice"
percentage_rule_type
string (Commission rate)
Enum: "billing.flatpercentagerule" "billing.invoicesuccessionrule" "billing.accountmrrrule"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "include_upgrades": true,
  • "indefinite": true,
  • "duration_amount": -2147483648,
  • "duration_unit": "month",
  • "percentage_rule_type": "billing.flatpercentagerule"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "terms": [
    ],
  • "rules": [
    ],
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "include_upgrades": true,
  • "indefinite": true,
  • "duration_amount": -2147483648,
  • "duration_unit": "month",
  • "percentage_rule_type": "billing.flatpercentagerule"
}

api_v1_kickback_contracts_read

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this kickback contract.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/kickback/contracts/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "terms": [
    ],
  • "rules": [
    ],
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "include_upgrades": true,
  • "indefinite": true,
  • "duration_amount": -2147483648,
  • "duration_unit": "month",
  • "percentage_rule_type": "billing.flatpercentagerule"
}

api_v1_kickback_contracts_update

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this kickback contract.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 128 ] characters
include_upgrades
boolean (Include upgrades)
indefinite
boolean (Indefinite)
duration_amount
integer or null (Duration amount) [ -2147483648 .. 2147483647 ]
duration_unit
string or null (Duration unit)
Enum: "month" "invoice"
percentage_rule_type
string (Commission rate)
Enum: "billing.flatpercentagerule" "billing.invoicesuccessionrule" "billing.accountmrrrule"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "include_upgrades": true,
  • "indefinite": true,
  • "duration_amount": -2147483648,
  • "duration_unit": "month",
  • "percentage_rule_type": "billing.flatpercentagerule"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "terms": [
    ],
  • "rules": [
    ],
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "include_upgrades": true,
  • "indefinite": true,
  • "duration_amount": -2147483648,
  • "duration_unit": "month",
  • "percentage_rule_type": "billing.flatpercentagerule"
}

api_v1_kickback_contracts_partial_update

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this kickback contract.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 128 ] characters
include_upgrades
boolean (Include upgrades)
indefinite
boolean (Indefinite)
duration_amount
integer or null (Duration amount) [ -2147483648 .. 2147483647 ]
duration_unit
string or null (Duration unit)
Enum: "month" "invoice"
percentage_rule_type
string (Commission rate)
Enum: "billing.flatpercentagerule" "billing.invoicesuccessionrule" "billing.accountmrrrule"

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "include_upgrades": true,
  • "indefinite": true,
  • "duration_amount": -2147483648,
  • "duration_unit": "month",
  • "percentage_rule_type": "billing.flatpercentagerule"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "terms": [
    ],
  • "rules": [
    ],
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "include_upgrades": true,
  • "indefinite": true,
  • "duration_amount": -2147483648,
  • "duration_unit": "month",
  • "percentage_rule_type": "billing.flatpercentagerule"
}

DirectDebitDebtor

api_v1_directdebitdebtors_list

button

Direct debit solutions for your accounts.

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/directdebitdebtors/?account=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_directdebitdebtors_create

button

Direct debit solutions for your accounts.

Authorizations:
Request Body schema: application/json
account
required
string <uuid> (Account)
gateway
required
string (Gateway)
Enum: "leverandoer" "pbs" "stripe_sepa" "noop"

Payment gateway from which this debtor is. This field determines what will be stored as token.
Possible values:
leverandoer - Leverandørservice. When using this gateway token should be a customer number.
stripe_sepa - SEPA debtor registered in Stripe. In this gateway token should be a payment method ID.
pbs - Betalingsservice payment provider. In this gateway token should be a customer number.
noop - Fake gateway for test purpose only. WARNING: charges with this cards WILL ALWAYS be marked as success in Fenerum, but will not charge anyone. Don't use on real accounts, but feel free to use for testing.

token
required
string (Token) non-empty

ID in payment gateway. What it is depends on the payment_gateway field.

Responses

Request samples

Content type
application/json
{
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "gateway": "leverandoer",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": {
    },
  • "status": "not_send",
  • "payment_gateway": "leverandoer",
  • "payment_gateway_id": "string",
  • "model": "string",
  • "schema": "string"
}

api_v1_directdebitdebtors_generate

button

Returns a possible customer number for Betalingsservice debtor.

Authorizations:
Request Body schema: application/json
gateway
required
string (Gateway)
Value: "pbs"

Responses

Request samples

Content type
application/json
{
  • "gateway": "pbs"
}

Response samples

Content type
application/json
{
  • "gateway": "pbs",
  • "generated_number": "string"
}

api_v1_directdebitdebtors_read

button

Direct debit solutions for your accounts.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this direct debit debtor.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/directdebitdebtors/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": {
    },
  • "status": "not_send",
  • "payment_gateway": "leverandoer",
  • "payment_gateway_id": "string",
  • "model": "string",
  • "schema": "string"
}

api_v1_directdebitdebtors_disable

button

Direct debit solutions for your accounts.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this direct debit debtor.

Request Body schema: application/json
object (DisableDirectDebitDebtor)

Responses

Request samples

Content type
application/json
{ }

PaymentCard

api_v1_paymentcards_list

button

Payment Cards cover both credit and debit cards attached to an account.

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/paymentcards/?account=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_paymentcards_create

button

Payment Cards cover both credit and debit cards attached to an account.

Authorizations:
Request Body schema: application/json
account
required
string <uuid> (Account)
gateway
required
string (Gateway)
Enum: "stripe" "stripe_new" "noop" "quickpay" "dibs" "dibs_easy"

Payment gateway from which this card is. This field determines what will be stored as token.
Possible values:
stripe - (deprecated) Old Stripe integration using Sources API. Should not be used, as it does not support SCA.
stripe_new - Stripe using PaymentIntents. When using this gateway token should be a Stripe PaymentMethod ID.
quickpay - QuickPay payment provider. In this gateway token should be a QuickPay subscription identifier.
dibs - DIBS payments using D2 API. token will be a DIBS ticket used for ticket_auth.cgi.
dibs_easy - New NETS platfrom - Easy.token needs to be the payment id or subscription id (NOT charge id)
noop - Fake gateway for test purpose only. WARNING: charges with this cards WILL ALWAYS be marked as success in Fenerum, but will not charge anyone. Don't use on real accounts, but feel free to use for testing.

token
required
string (Token) non-empty

ID in payment gateway. What it is depends on the payment_gateway field.

currency
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"

Required for the dibs_easy gateway unless you use payment id as the token.

Responses

Request samples

Content type
application/json
{
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "gateway": "stripe",
  • "token": "string",
  • "currency": "DKK"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "active": "string",
  • "brand": "string",
  • "card_number": "string",
  • "month": -2147483648,
  • "year": -2147483648,
  • "name": "string",
  • "payment_gateway": "stripe",
  • "payment_gateway_id": "string",
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "model": "string",
  • "schema": "string"
}

api_v1_paymentcards_initiate_setup

button

Payment Cards cover both credit and debit cards attached to an account.

Authorizations:
Request Body schema: application/json
payment_gateway
required
string (Payment gateway)
Enum: "stripe" "stripe_new"

Responses

Request samples

Content type
application/json
{
  • "payment_gateway": "stripe"
}

Response samples

Content type
application/json
{
  • "payment_gateway": "stripe",
  • "setup_details": { }
}

api_v1_paymentcards_read

button

Payment Cards cover both credit and debit cards attached to an account.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this payment card.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/paymentcards/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "active": "string",
  • "brand": "string",
  • "card_number": "string",
  • "month": -2147483648,
  • "year": -2147483648,
  • "name": "string",
  • "payment_gateway": "stripe",
  • "payment_gateway_id": "string",
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "model": "string",
  • "schema": "string"
}

api_v1_paymentcards_disable

button

Payment Cards cover both credit and debit cards attached to an account.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this payment card.

Request Body schema: application/json
object (DisablePaymentCard)

Responses

Request samples

Content type
application/json
{ }

DraftInvoiceLine

api_v1_draft-invoice-lines_products_list

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for Invoice lines creation using Products feature.

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

date_from__lte
string

Format: YYYY-MM-DD

date_from__gte
string

Format: YYYY-MM-DD

date_to__lte
string

Format: YYYY-MM-DD

date_to__gte
string

Format: YYYY-MM-DD

last_modified_date__lte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_lte
string

Format: YYYY-MM-DD

last_modified_date__gte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_gte
string

Format: YYYY-MM-DD

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/draft-invoice-lines/products/?account=SOME_STRING_VALUE&date_from__lte=SOME_STRING_VALUE&date_from__gte=SOME_STRING_VALUE&date_to__lte=SOME_STRING_VALUE&date_to__gte=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__org_tz_lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&last_modified_date__org_tz_gte=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_draft-invoice-lines_products_create

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for Invoice lines creation using Products feature.

Authorizations:
Request Body schema: application/json
account
required
string (Account)

Account code (ID from external system)

collect_vat
boolean (Collect vat)

Collect VAT if required - uncheck for VAT-free items like shipping costs (DK)

date_from
required
string <date> (Date from)
date_to
required
string <date> (Date to)
price
string <decimal> (Price)
quantity
required
string <decimal> (Quantity)
include_in_next_renewal_invoice
boolean (Include in next renewal invoice)

Include as a line in the next subscription renewal invoice.

product_pricing
required
string or null <uuid> (Product pricing)
reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "include_in_next_renewal_invoice": true,
  • "product_pricing": "eb9bff53-30f1-4db5-866e-271ebb1d091e",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "include_in_next_renewal_invoice": true,
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "product_pricing": "eb9bff53-30f1-4db5-866e-271ebb1d091e",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "currency": "DKK",
  • "revenue_group": "string"
}

api_v1_draft-invoice-lines_products_read

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for Invoice lines creation using Products feature.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/draft-invoice-lines/products/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "include_in_next_renewal_invoice": true,
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "product_pricing": "eb9bff53-30f1-4db5-866e-271ebb1d091e",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "currency": "DKK",
  • "revenue_group": "string"
}

api_v1_draft-invoice-lines_products_update

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for Invoice lines creation using Products feature.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Request Body schema: application/json
account
required
string (Account)

Account code (ID from external system)

collect_vat
boolean (Collect vat)

Collect VAT if required - uncheck for VAT-free items like shipping costs (DK)

date_from
required
string <date> (Date from)
date_to
required
string <date> (Date to)
price
string <decimal> (Price)
quantity
required
string <decimal> (Quantity)
include_in_next_renewal_invoice
boolean (Include in next renewal invoice)

Include as a line in the next subscription renewal invoice.

product_pricing
required
string or null <uuid> (Product pricing)
reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "include_in_next_renewal_invoice": true,
  • "product_pricing": "eb9bff53-30f1-4db5-866e-271ebb1d091e",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "include_in_next_renewal_invoice": true,
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "product_pricing": "eb9bff53-30f1-4db5-866e-271ebb1d091e",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "currency": "DKK",
  • "revenue_group": "string"
}

api_v1_draft-invoice-lines_products_partial_update

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for Invoice lines creation using Products feature.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Request Body schema: application/json
account
required
string (Account)

Account code (ID from external system)

collect_vat
boolean (Collect vat)

Collect VAT if required - uncheck for VAT-free items like shipping costs (DK)

date_from
required
string <date> (Date from)
date_to
required
string <date> (Date to)
price
string <decimal> (Price)
quantity
required
string <decimal> (Quantity)
include_in_next_renewal_invoice
boolean (Include in next renewal invoice)

Include as a line in the next subscription renewal invoice.

product_pricing
required
string or null <uuid> (Product pricing)
reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "include_in_next_renewal_invoice": true,
  • "product_pricing": "eb9bff53-30f1-4db5-866e-271ebb1d091e",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "include_in_next_renewal_invoice": true,
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "product_pricing": "eb9bff53-30f1-4db5-866e-271ebb1d091e",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "currency": "DKK",
  • "revenue_group": "string"
}

api_v1_draft-invoice-lines_products_delete

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for Invoice lines creation using Products feature.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/draft-invoice-lines/products/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

api_v1_draftinvoicelines_list

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for custom (without product feature) Invoice lines interaction.

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

date_from__lte
string

Format: YYYY-MM-DD

date_from__gte
string

Format: YYYY-MM-DD

date_to__lte
string

Format: YYYY-MM-DD

date_to__gte
string

Format: YYYY-MM-DD

last_modified_date__lte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_lte
string

Format: YYYY-MM-DD

last_modified_date__gte
string

Format: YYYY-MM-DD

last_modified_date__org_tz_gte
string

Format: YYYY-MM-DD

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/draftinvoicelines/?account=SOME_STRING_VALUE&date_from__lte=SOME_STRING_VALUE&date_from__gte=SOME_STRING_VALUE&date_to__lte=SOME_STRING_VALUE&date_to__gte=SOME_STRING_VALUE&last_modified_date__lte=SOME_STRING_VALUE&last_modified_date__org_tz_lte=SOME_STRING_VALUE&last_modified_date__gte=SOME_STRING_VALUE&last_modified_date__org_tz_gte=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_draftinvoicelines_create

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for custom (without product feature) Invoice lines interaction.

Authorizations:
Request Body schema: application/json
account
required
string (Account)

Account code (ID from external system)

description
required
string (Description) [ 1 .. 256 ] characters
vat_type
required
string (Vat type)
Enum: "physical" "services" "unknown"
collect_vat
boolean (Collect vat)
Default: true

Collect VAT if required - uncheck for VAT-free items like shipping costs (DK)

date_from
required
string <date> (Date from)
date_to
required
string <date> (Date to)
price
required
string <decimal> (Price)
quantity
required
string <decimal> (Quantity)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
include_in_next_renewal_invoice
boolean (Include in next renewal invoice)

Include as a line in the next subscription renewal invoice.

revenue_group
string or null (Revenue group)

Name of the Revenue Group (only if Revenue Group feature is enabled, also field is required then).

reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters
invoice_supplement
string or null (Invoice supplement)

Additional text that will be added to description on the invoice line.

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "currency": "DKK",
  • "include_in_next_renewal_invoice": true,
  • "revenue_group": "string",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "currency": "DKK",
  • "include_in_next_renewal_invoice": true,
  • "revenue_group": "string",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

api_v1_draftinvoicelines_read

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for custom (without product feature) Invoice lines interaction.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/draftinvoicelines/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "currency": "DKK",
  • "include_in_next_renewal_invoice": true,
  • "revenue_group": "string",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

api_v1_draftinvoicelines_update

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for custom (without product feature) Invoice lines interaction.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Request Body schema: application/json
account
required
string (Account)

Account code (ID from external system)

description
required
string (Description) [ 1 .. 256 ] characters
vat_type
required
string (Vat type)
Enum: "physical" "services" "unknown"
collect_vat
boolean (Collect vat)
Default: true

Collect VAT if required - uncheck for VAT-free items like shipping costs (DK)

date_from
required
string <date> (Date from)
date_to
required
string <date> (Date to)
price
required
string <decimal> (Price)
quantity
required
string <decimal> (Quantity)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
include_in_next_renewal_invoice
boolean (Include in next renewal invoice)

Include as a line in the next subscription renewal invoice.

revenue_group
string or null (Revenue group)

Name of the Revenue Group (only if Revenue Group feature is enabled, also field is required then).

reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters
invoice_supplement
string or null (Invoice supplement)

Additional text that will be added to description on the invoice line.

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "currency": "DKK",
  • "include_in_next_renewal_invoice": true,
  • "revenue_group": "string",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "currency": "DKK",
  • "include_in_next_renewal_invoice": true,
  • "revenue_group": "string",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

api_v1_draftinvoicelines_partial_update

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for custom (without product feature) Invoice lines interaction.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Request Body schema: application/json
account
required
string (Account)

Account code (ID from external system)

description
required
string (Description) [ 1 .. 256 ] characters
vat_type
required
string (Vat type)
Enum: "physical" "services" "unknown"
collect_vat
boolean (Collect vat)
Default: true

Collect VAT if required - uncheck for VAT-free items like shipping costs (DK)

date_from
required
string <date> (Date from)
date_to
required
string <date> (Date to)
price
required
string <decimal> (Price)
quantity
required
string <decimal> (Quantity)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
include_in_next_renewal_invoice
boolean (Include in next renewal invoice)

Include as a line in the next subscription renewal invoice.

revenue_group
string or null (Revenue group)

Name of the Revenue Group (only if Revenue Group feature is enabled, also field is required then).

reference_person
string (Reference person) <= 128 characters
account_reference_person
string (Your reference) <= 128 characters
po_number
string (Po number) <= 128 characters
case_number
string (Case number) <= 128 characters
invoice_supplement
string or null (Invoice supplement)

Additional text that will be added to description on the invoice line.

Responses

Request samples

Content type
application/json
{
  • "account": "string",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "currency": "DKK",
  • "include_in_next_renewal_invoice": true,
  • "revenue_group": "string",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "currency": "DKK",
  • "include_in_next_renewal_invoice": true,
  • "revenue_group": "string",
  • "last_modified_date": "2019-08-24T14:15:22Z",
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

api_v1_draftinvoicelines_delete

button

Invoice lines that can be used to create a standalone invoice or added to an automatically-generated subscription renewal invoice. This endpoint allows for custom (without product feature) Invoice lines interaction.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this draft invoice line.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/draftinvoicelines/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

ERPAccountLine

api_v1_erp-lines_list

button

Authorizations:
query Parameters
created_date__lte
string

Format: YYYY-MM-DDTHH:MM:SSZ

created_date__gte
string

Format: YYYY-MM-DDTHH:MM:SSZ

updated_date__lte
string

Format: YYYY-MM-DDTHH:MM:SSZ

updated_date__gte
string

Format: YYYY-MM-DDTHH:MM:SSZ

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/erp-lines/?created_date__lte=SOME_STRING_VALUE&created_date__gte=SOME_STRING_VALUE&updated_date__lte=SOME_STRING_VALUE&updated_date__gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_erp-lines_read

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this erp account line.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/erp-lines/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "type": "financial",
  • "account_number": -2147483648,
  • "vat_code": "string",
  • "contra_account_number": -2147483648,
  • "contra_vat_code": "string",
  • "currency": "DKK",
  • "text": "string",
  • "date": "2019-08-24",
  • "amount": "string",
  • "amount_default_currency": "string",
  • "sync_status": "open",
  • "voucher_id": -2147483648,
  • "sync_time": "2019-08-24T14:15:22Z",
  • "invoice_id": "string",
  • "expense_id": "string",
  • "transaction_id": "string",
  • "supplier_invoice_id": "string",
  • "created_date": "2019-08-24T14:15:22Z",
  • "updated_date": "2019-08-24T14:15:22Z",
  • "model": "string",
  • "schema": "string"
}

api_v1_erp-lines_resend

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this erp account line.

Request Body schema: application/json
object (ResendERPAccountLine)

Responses

Request samples

Content type
application/json
{ }

Product

api_v1_products_list

button

Authorizations:
query Parameters
product_type
string
is_active
string
ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/products/?product_type=SOME_STRING_VALUE&is_active=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_products_create

button

Authorizations:
Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
description
string (Description)

Will be displayed under the name of Invoice Line

revenue_group
required
integer (Revenue group)
product_type
required
string (Product type)
Enum: "goods" "services"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true,
  • "product_pricings": [
    ]
}

api_v1_products_export_pricing

button

Authorizations:
Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
description
string (Description)

Will be displayed under the name of Invoice Line

revenue_group
required
integer (Revenue group)
product_type
required
string (Product type)
Enum: "goods" "services"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_products_export

button

Authorizations:
Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
description
string (Description)

Will be displayed under the name of Invoice Line

revenue_group
required
integer (Revenue group)
product_type
required
string (Product type)
Enum: "goods" "services"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_products_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this product.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/products/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true,
  • "product_pricings": [
    ]
}

api_v1_products_update

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this product.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
description
string (Description)

Will be displayed under the name of Invoice Line

revenue_group
required
integer (Revenue group)
product_type
required
string (Product type)
Enum: "goods" "services"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true,
  • "product_pricings": [
    ]
}

api_v1_products_partial_update

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this product.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
description
string (Description)

Will be displayed under the name of Invoice Line

revenue_group
required
integer (Revenue group)
product_type
required
string (Product type)
Enum: "goods" "services"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "string",
  • "description": "string",
  • "revenue_group": 0,
  • "product_type": "goods",
  • "is_active": true,
  • "product_pricings": [
    ]
}

api_v1_products_delete

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this product.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/products/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Recipient

api_v1_recipients_list

button

Recipients are destinations where we send notifications for a given account. Each recipient may ask for certain notifications only.

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/recipients/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_recipients_create

button

Recipients are destinations where we send notifications for a given account. Each recipient may ask for certain notifications only.

Authorizations:
Request Body schema: application/json
account
required
string <uuid> (Account)

Account UUID for which recipient will be created.

name
required
string (Name) [ 1 .. 128 ] characters
email
required
string <email> (Email) [ 1 .. 254 ] characters
receive_invoice
required
boolean (Receive invoice)
receive_payment_confirmation
required
boolean (Receive payment confirmation)

Responses

Request samples

Content type
application/json
{
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "name": "string",
  • "email": "user@example.com",
  • "receive_invoice": true,
  • "receive_payment_confirmation": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "name": "string",
  • "email": "user@example.com",
  • "receive_invoice": true,
  • "receive_payment_confirmation": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_recipients_export

button

Recipients are destinations where we send notifications for a given account. Each recipient may ask for certain notifications only.

Authorizations:
Request Body schema: application/json

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_recipients_read

button

Recipients are destinations where we send notifications for a given account. Each recipient may ask for certain notifications only.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this recipient.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/recipients/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "name": "string",
  • "email": "user@example.com",
  • "receive_invoice": true,
  • "receive_payment_confirmation": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_recipients_update

button

Recipients are destinations where we send notifications for a given account. Each recipient may ask for certain notifications only.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this recipient.

Request Body schema: application/json
account
required
string <uuid> (Account)

Account UUID for which recipient will be created.

name
required
string (Name) [ 1 .. 128 ] characters
email
required
string <email> (Email) [ 1 .. 254 ] characters
receive_invoice
required
boolean (Receive invoice)
receive_payment_confirmation
required
boolean (Receive payment confirmation)

Responses

Request samples

Content type
application/json
{
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "name": "string",
  • "email": "user@example.com",
  • "receive_invoice": true,
  • "receive_payment_confirmation": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "name": "string",
  • "email": "user@example.com",
  • "receive_invoice": true,
  • "receive_payment_confirmation": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_recipients_partial_update

button

Recipients are destinations where we send notifications for a given account. Each recipient may ask for certain notifications only.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this recipient.

Request Body schema: application/json
account
required
string <uuid> (Account)

Account UUID for which recipient will be created.

name
required
string (Name) [ 1 .. 128 ] characters
email
required
string <email> (Email) [ 1 .. 254 ] characters
receive_invoice
required
boolean (Receive invoice)
receive_payment_confirmation
required
boolean (Receive payment confirmation)

Responses

Request samples

Content type
application/json
{
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "name": "string",
  • "email": "user@example.com",
  • "receive_invoice": true,
  • "receive_payment_confirmation": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": "f5b54a51-a98c-44cf-bb68-a676332e7d12",
  • "name": "string",
  • "email": "user@example.com",
  • "receive_invoice": true,
  • "receive_payment_confirmation": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_recipients_delete

button

Recipients are destinations where we send notifications for a given account. Each recipient may ask for certain notifications only.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this recipient.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/recipients/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Transaction

api_v1_transactions_list

button

Authorizations:
query Parameters
method
string
type
string
currency
string
import_source
string
invoice
string
account
string

Filter using account code (External ID)

account_uuid
string

Filter using account UUID

is_loss
string
is_settlement
string
date__lte
string

Format: YYYY-MM-DD

date__gte
string

Format: YYYY-MM-DD

created_date__lte
string

Format: YYYY-MM-DD

created_date__org_tz_lte
string

Format: YYYY-MM-DD

created_date__gte
string

Format: YYYY-MM-DD

created_date__org_tz_gte
string

Format: YYYY-MM-DD

ordering
string

Which field to use when ordering the results.

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/transactions/?method=SOME_STRING_VALUE&type=SOME_STRING_VALUE&currency=SOME_STRING_VALUE&import_source=SOME_STRING_VALUE&invoice=SOME_STRING_VALUE&account=SOME_STRING_VALUE&account_uuid=SOME_STRING_VALUE&is_loss=SOME_STRING_VALUE&is_settlement=SOME_STRING_VALUE&date__lte=SOME_STRING_VALUE&date__gte=SOME_STRING_VALUE&created_date__lte=SOME_STRING_VALUE&created_date__org_tz_lte=SOME_STRING_VALUE&created_date__gte=SOME_STRING_VALUE&created_date__org_tz_gte=SOME_STRING_VALUE&ordering=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_transactions_export

button

Authorizations:
Request Body schema: application/json
required
object (MinimalAccount)
invoice
required
string <uuid> (Invoice)
type
required
string (Type)
Enum: "payment" "verification" "refund" "chargeback" "chargeback_reversal" "loss_net" "loss_vat"
method
required
string (Method)
Enum: "payment_card" "direct_debit" "bank_transfer" "settlement" "loss_registration" "imported"
date
required
string <date> (Date)
amount
required
string <decimal> (Amount)
notes
required
string (Notes) non-empty
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
amount_in_default_currency
string or null <decimal> (Amount in default currency)
bank_account
integer or null (Bank account)
bank_account_line
integer or null (Bank account line)
bank_account_amount
string or null <decimal> (Bank account amount)
bank_account_currency
string or null (Bank account currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
external_transaction_id
string or null (External transaction id) [ 1 .. 128 ] characters
import_source
string or null (Import source)
Enum: "manual" "erp"
reverse_of
string or null <uuid> (Reverse of)

Responses

Request samples

Content type
application/json
{
  • "account": { },
  • "invoice": "f5072b7b-65cb-48aa-bf69-c999195da70c",
  • "type": "payment",
  • "method": "payment_card",
  • "date": "2019-08-24",
  • "amount": "string",
  • "notes": "string",
  • "currency": "DKK",
  • "amount_in_default_currency": "string",
  • "bank_account": 0,
  • "bank_account_line": 0,
  • "bank_account_amount": "string",
  • "bank_account_currency": "DKK",
  • "external_transaction_id": "string",
  • "import_source": "manual",
  • "reverse_of": "166ec9b4-871b-4ade-94d3-5f95b4671052"
}

Response samples

Content type
application/json
{
  • "export_id": "string",
  • "job_uuid": "de25c4df-6d4e-439f-9d5f-a4c55d30f26e"
}

api_v1_transactions_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this Transaction.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/transactions/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "account": {
    },
  • "invoice": "f5072b7b-65cb-48aa-bf69-c999195da70c",
  • "type": "payment",
  • "method": "payment_card",
  • "date": "2019-08-24",
  • "amount": "string",
  • "notes": "string",
  • "currency": "DKK",
  • "amount_in_default_currency": "string",
  • "bank_account": 0,
  • "bank_account_line": 0,
  • "bank_account_amount": "string",
  • "bank_account_currency": "DKK",
  • "external_transaction_id": "string",
  • "import_source": "manual",
  • "created_date": "2019-08-24T14:15:22Z",
  • "reverse_of": "166ec9b4-871b-4ade-94d3-5f95b4671052",
  • "model": "string",
  • "schema": "string"
}

SelfService

api_self_service_initiate_organization

button

This endpoint can be used to initiate self-service on behalf of a recipient/new user. It requires the self-service feature and the permission "initiate_self_service". The endpoint returns a direct link to self-service for the provided email.

Authorizations:
Request Body schema: application/json
email
required
string <email> (Email) non-empty

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{}

InvoiceLine

api_v1_invoicelines_list

button

Authorizations:
query Parameters
account
string

Filter using account code (External ID)

subscription_uuid
string

Filter using Subscription UUID

since
string

Deprecated, one should use date_from.

date__lte
string

Filter using date from the Invoice Format: YYYY-MM-DD

date__gte
string

Filter using date from the Invoice Format: YYYY-MM-DD

page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/invoicelines/?account=SOME_STRING_VALUE&subscription_uuid=SOME_STRING_VALUE&since=SOME_STRING_VALUE&date__lte=SOME_STRING_VALUE&date__gte=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_invoicelines_read

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this invoice line.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/invoicelines/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "invoice": "f5072b7b-65cb-48aa-bf69-c999195da70c",
  • "account": "string",
  • "account_code": "string",
  • "account_uuid": "847548f7-9cde-4fe5-8751-32ff19825b7e",
  • "description": "string",
  • "vat_type": "physical",
  • "collect_vat": true,
  • "date_from": "2019-08-24",
  • "date_to": "2019-08-24",
  • "price": "string",
  • "quantity": "string",
  • "subtotal": "string",
  • "vat": "string",
  • "total": "string",
  • "currency": "string",
  • "imported_line": true,
  • "refund_of": 0,
  • "subscription": "da7489c5-d730-47b7-9958-07300ef9d3d8",
  • "terms": "631338da-a0b5-4ef0-90ce-ca16c76d475c",
  • "sort_weight": -200,
  • "draft_invoice_line_pk": "e2ca90b8-7081-4327-afde-603d8dd159bd",
  • "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
  • "revenue_group_id": 0,
  • "reference_person": "string",
  • "account_reference_person": "string",
  • "po_number": "string",
  • "case_number": "string",
  • "invoice_supplement": "string",
  • "model": "string",
  • "schema": "string"
}

Partner

api_v1_partners_list

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/partners/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_partners_create

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
Request Body schema: application/json
contract_id
required
integer (Contract id)
object (KickbackContract)
name
required
string (Name) [ 1 .. 128 ] characters
email
string or null <email> (Email) <= 254 characters
start_date
required
string <date> (Start date)
end_date
string or null <date> (End date)

Responses

Request samples

Content type
application/json
{
  • "contract_id": 0,
  • "contract": {
    },
  • "name": "string",
  • "email": "user@example.com",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "account_set": [
    ],
  • "contract_id": 0,
  • "contract": {
    },
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "email": "user@example.com",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

api_v1_partners_read

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this partner.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/partners/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "account_set": [
    ],
  • "contract_id": 0,
  • "contract": {
    },
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "email": "user@example.com",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

api_v1_partners_update

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this partner.

Request Body schema: application/json
contract_id
required
integer (Contract id)
object (KickbackContract)
name
required
string (Name) [ 1 .. 128 ] characters
email
string or null <email> (Email) <= 254 characters
start_date
required
string <date> (Start date)
end_date
string or null <date> (End date)

Responses

Request samples

Content type
application/json
{
  • "contract_id": 0,
  • "contract": {
    },
  • "name": "string",
  • "email": "user@example.com",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "account_set": [
    ],
  • "contract_id": 0,
  • "contract": {
    },
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "email": "user@example.com",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

api_v1_partners_partial_update

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this partner.

Request Body schema: application/json
contract_id
required
integer (Contract id)
object (KickbackContract)
name
required
string (Name) [ 1 .. 128 ] characters
email
string or null <email> (Email) <= 254 characters
start_date
required
string <date> (Start date)
end_date
string or null <date> (End date)

Responses

Request samples

Content type
application/json
{
  • "contract_id": 0,
  • "contract": {
    },
  • "name": "string",
  • "email": "user@example.com",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "account_set": [
    ],
  • "contract_id": 0,
  • "contract": {
    },
  • "model": "string",
  • "schema": "string",
  • "name": "string",
  • "email": "user@example.com",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24"
}

api_v1_partners_delete

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this partner.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/partners/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

api_v1_partners_kickback

button

Here you can obtain a kickback amount in specified time period for a given partner.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this partner.

query Parameters
start_date
string
Default: "Today's date"

Which date should be taken as base for calculcation

end_date
string
Default: "Today's date"

Which date should be taken as base for calculcation

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/partners/%7Bid%7D/kickback/?start_date=Today'\''s%20date&end_date=Today'\''s%20date' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "kickbacks": [
    ],
  • "invoice_lines": [
    ]
}

ProductPricing

api_v1_products_pricings_list

button

Authorizations:
path Parameters
product_uuid
required
string

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/products/%7Bproduct_uuid%7D/pricings/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_products_pricings_create

button

Authorizations:
path Parameters
product_uuid
required
string
Request Body schema: application/json
price
required
string <decimal> (Price)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "price": "string",
  • "currency": "DKK",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "price": "string",
  • "currency": "DKK",
  • "is_active": true
}

api_v1_products_pricings_read

button

Authorizations:
path Parameters
product_uuid
required
string
uuid
required
string <uuid>

A UUID string identifying this product pricing.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/products/%7Bproduct_uuid%7D/pricings/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "price": "string",
  • "currency": "DKK",
  • "is_active": true
}

api_v1_products_pricings_update

button

Authorizations:
path Parameters
product_uuid
required
string
uuid
required
string <uuid>

A UUID string identifying this product pricing.

Request Body schema: application/json
price
required
string <decimal> (Price)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "price": "string",
  • "currency": "DKK",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "price": "string",
  • "currency": "DKK",
  • "is_active": true
}

api_v1_products_pricings_partial_update

button

Authorizations:
path Parameters
product_uuid
required
string
uuid
required
string <uuid>

A UUID string identifying this product pricing.

Request Body schema: application/json
price
required
string <decimal> (Price)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
is_active
boolean (Is active)

Responses

Request samples

Content type
application/json
{
  • "price": "string",
  • "currency": "DKK",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "price": "string",
  • "currency": "DKK",
  • "is_active": true
}

api_v1_products_pricings_delete

button

Authorizations:
path Parameters
product_uuid
required
string
uuid
required
string <uuid>

A UUID string identifying this product pricing.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/products/%7Bproduct_uuid%7D/pricings/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Receipt

api_v1_receipts_list

button

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/receipts/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_receipts_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/receipts/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 0,
  • "status": "unmatched",
  • "document_date": "2019-08-24",
  • "amount": "string",
  • "currency": "DKK",
  • "supplier": "acc345c7-457d-43bb-ac95-81572c2199bb",
  • "supplier_receipt_number": "string",
  • "cost_account": "1e6d13a4-88d1-4e89-9559-0ac7b449f1cb",
  • "note": "string",
  • "file_base64": "string",
  • "file_url": "string",
  • "verified_by": "8c493be0-efe2-4a3e-bdbd-7af0eab50aa2",
  • "verified_by_for_display": "string",
  • "verified_on": "2019-08-24T14:15:22Z",
  • "matched_expenses_amount": "string",
  • "matched_expenses_remaining_amount": "string",
  • "expense_set": [
    ],
  • "possible_duplicates": "string",
  • "model": "string",
  • "schema": "string"
}

RevenueGroup

api_v1_revenuegroup_list

button

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/revenuegroup/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_revenuegroup_create

button

Authorizations:
Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
required
Array of objects (RevenueGroupCountry) [ items ]
default_revenue_account_eu
string or null <uuid> (Revenue account for EU clients)
default_revenue_account_eu_vat_exempt
string or null <uuid> (Revenue account for EU VAT-exempt clients)

In most cases, you could use the same account that you use for domestic sales

default_revenue_account
string or null <uuid> (Revenue account for clients from the rest of the world)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "revenuegroupcountry_set": [
    ],
  • "default_revenue_account_eu": "f9583bcc-541a-4159-b188-3eceb6c658e8",
  • "default_revenue_account_eu_vat_exempt": "f8577732-8caf-4d88-ad11-4f43a9ec05bd",
  • "default_revenue_account": "e423f4ec-f607-4f5a-9676-bb4746c9b320"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "revenuegroupcountry_set": [
    ],
  • "default_revenue_account_eu": "f9583bcc-541a-4159-b188-3eceb6c658e8",
  • "default_revenue_account_eu_vat_exempt": "f8577732-8caf-4d88-ad11-4f43a9ec05bd",
  • "default_revenue_account": "e423f4ec-f607-4f5a-9676-bb4746c9b320",
  • "model": "string",
  • "schema": "string"
}

api_v1_revenuegroup_read

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this Revenue Group.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/revenuegroup/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "revenuegroupcountry_set": [
    ],
  • "default_revenue_account_eu": "f9583bcc-541a-4159-b188-3eceb6c658e8",
  • "default_revenue_account_eu_vat_exempt": "f8577732-8caf-4d88-ad11-4f43a9ec05bd",
  • "default_revenue_account": "e423f4ec-f607-4f5a-9676-bb4746c9b320",
  • "model": "string",
  • "schema": "string"
}

api_v1_revenuegroup_update

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this Revenue Group.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
required
Array of objects (RevenueGroupCountry) [ items ]
default_revenue_account_eu
string or null <uuid> (Revenue account for EU clients)
default_revenue_account_eu_vat_exempt
string or null <uuid> (Revenue account for EU VAT-exempt clients)

In most cases, you could use the same account that you use for domestic sales

default_revenue_account
string or null <uuid> (Revenue account for clients from the rest of the world)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "revenuegroupcountry_set": [
    ],
  • "default_revenue_account_eu": "f9583bcc-541a-4159-b188-3eceb6c658e8",
  • "default_revenue_account_eu_vat_exempt": "f8577732-8caf-4d88-ad11-4f43a9ec05bd",
  • "default_revenue_account": "e423f4ec-f607-4f5a-9676-bb4746c9b320"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "revenuegroupcountry_set": [
    ],
  • "default_revenue_account_eu": "f9583bcc-541a-4159-b188-3eceb6c658e8",
  • "default_revenue_account_eu_vat_exempt": "f8577732-8caf-4d88-ad11-4f43a9ec05bd",
  • "default_revenue_account": "e423f4ec-f607-4f5a-9676-bb4746c9b320",
  • "model": "string",
  • "schema": "string"
}

api_v1_revenuegroup_partial_update

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this Revenue Group.

Request Body schema: application/json
name
required
string (Name) [ 1 .. 100 ] characters
required
Array of objects (RevenueGroupCountry) [ items ]
default_revenue_account_eu
string or null <uuid> (Revenue account for EU clients)
default_revenue_account_eu_vat_exempt
string or null <uuid> (Revenue account for EU VAT-exempt clients)

In most cases, you could use the same account that you use for domestic sales

default_revenue_account
string or null <uuid> (Revenue account for clients from the rest of the world)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "revenuegroupcountry_set": [
    ],
  • "default_revenue_account_eu": "f9583bcc-541a-4159-b188-3eceb6c658e8",
  • "default_revenue_account_eu_vat_exempt": "f8577732-8caf-4d88-ad11-4f43a9ec05bd",
  • "default_revenue_account": "e423f4ec-f607-4f5a-9676-bb4746c9b320"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "revenuegroupcountry_set": [
    ],
  • "default_revenue_account_eu": "f9583bcc-541a-4159-b188-3eceb6c658e8",
  • "default_revenue_account_eu_vat_exempt": "f8577732-8caf-4d88-ad11-4f43a9ec05bd",
  • "default_revenue_account": "e423f4ec-f607-4f5a-9676-bb4746c9b320",
  • "model": "string",
  • "schema": "string"
}

api_v1_revenuegroup_delete

button

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this Revenue Group.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/revenuegroup/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

KickbackPercentageRule

api_v1_kickback_rules_list

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/kickback/rules/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_kickback_rules_create

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
Request Body schema: application/json
percentage
string <decimal> (Percentage)
succession_position
integer (Invoice order) [ -2147483648 .. 2147483647 ]
mrr_value
integer (Minimal MRR Value) [ -2147483648 .. 2147483647 ]

Responses

Request samples

Content type
application/json
{
  • "percentage": "string",
  • "succession_position": -2147483648,
  • "mrr_value": -2147483648
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "model": "string",
  • "schema": "string",
  • "type": "billing.flatpercentagerule",
  • "percentage": "string",
  • "succession_position": -2147483648,
  • "mrr_value": -2147483648
}

api_v1_kickback_rules_read

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this kickback percentage rule.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/kickback/rules/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "model": "string",
  • "schema": "string",
  • "type": "billing.flatpercentagerule",
  • "percentage": "string",
  • "succession_position": -2147483648,
  • "mrr_value": -2147483648
}

api_v1_kickback_rules_update

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this kickback percentage rule.

Request Body schema: application/json
percentage
string <decimal> (Percentage)
succession_position
integer (Invoice order) [ -2147483648 .. 2147483647 ]
mrr_value
integer (Minimal MRR Value) [ -2147483648 .. 2147483647 ]

Responses

Request samples

Content type
application/json
{
  • "percentage": "string",
  • "succession_position": -2147483648,
  • "mrr_value": -2147483648
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "model": "string",
  • "schema": "string",
  • "type": "billing.flatpercentagerule",
  • "percentage": "string",
  • "succession_position": -2147483648,
  • "mrr_value": -2147483648
}

api_v1_kickback_rules_partial_update

button

You need to have a Kickback feature enabled to use this endpoint.

Authorizations:
path Parameters
id
required
integer

A unique integer value identifying this kickback percentage rule.

Request Body schema: application/json
percentage
string <decimal> (Percentage)
succession_position
integer (Invoice order) [ -2147483648 .. 2147483647 ]
mrr_value
integer (Minimal MRR Value) [ -2147483648 .. 2147483647 ]

Responses

Request samples

Content type
application/json
{
  • "percentage": "string",
  • "succession_position": -2147483648,
  • "mrr_value": -2147483648
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "model": "string",
  • "schema": "string",
  • "type": "billing.flatpercentagerule",
  • "percentage": "string",
  • "succession_position": -2147483648,
  • "mrr_value": -2147483648
}

SupplierInvoice

api_v1_supplier-invoices_list

button

Authorizations:
query Parameters
status
string
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/supplier-invoices/?status=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_supplier-invoices_read

button

Authorizations:
path Parameters
uuid
required
string <uuid>

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/supplier-invoices/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 0,
  • "status": "unmatched",
  • "document_date": "2019-08-24",
  • "amount": "string",
  • "currency": "DKK",
  • "supplier": {
    },
  • "supplier_receipt_number": "string",
  • "cost_account": "1e6d13a4-88d1-4e89-9559-0ac7b449f1cb",
  • "note": "string",
  • "file_base64": "string",
  • "file_url": "string",
  • "verified_by": "8c493be0-efe2-4a3e-bdbd-7af0eab50aa2",
  • "verified_by_for_display": "string",
  • "verified_on": "2019-08-24T14:15:22Z",
  • "matched_expenses_amount": "string",
  • "matched_expenses_remaining_amount": "string",
  • "expense_set": [
    ],
  • "possible_duplicates": "string",
  • "model": "string",
  • "schema": "string",
  • "document_type_label": "string",
  • "created_on": "2019-08-24T14:15:22Z",
  • "due_date": "2019-08-24",
  • "payment_identifier": "IBAN",
  • "payment_account": "string",
  • "payment_scheduled": true,
  • "approved": true,
  • "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",
  • "approved_on": "2019-08-24T14:15:22Z",
  • "approved_by_for_display": "string"
}

PlanTerms

api_v1_plans_terms_list

button

Authorizations:
path Parameters
plan_identifier
required
string
query Parameters
code
string
header Parameters
Lookup-Field
string

Name of field used as resource identifiers. Possible values: uuid, code

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/plans/%7Bplan_identifier%7D/terms/?code=SOME_STRING_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE' \
  --header 'Lookup-Field: SOME_STRING_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

api_v1_plans_terms_create

button

Authorizations:
path Parameters
plan_identifier
required
string
header Parameters
Lookup-Field
string

Name of field used as resource identifiers. Possible values: uuid, code

Request Body schema: application/json
code
string or null (Code) <= 128 characters

ID from external system. If you don't have one you can just put any unique value here by which you will be able to reference this object on other items.

interval_type
required
string (Interval type)
Enum: "day" "month" "year"
interval_count
required
integer (Interval count) [ 1 .. 2147483647 ]
price
required
string <decimal> (Price)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
backwards_charging
boolean (Backwards charging)
active
boolean (Active)
revenue_group
string or null (Revenue group)

Name of the Revenue Group (only if Revenue Group feature is enabled, also field is required then).

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "interval_type": "day",
  • "interval_count": 1,
  • "price": "string",
  • "currency": "DKK",
  • "backwards_charging": true,
  • "active": true,
  • "revenue_group": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "code": "string",
  • "interval_type": "day",
  • "interval_count": 1,
  • "price": "string",
  • "currency": "DKK",
  • "backwards_charging": true,
  • "active": true,
  • "revenue_group": "string",
  • "model": "string",
  • "schema": "string"
}

api_v1_plans_terms_read

button

Authorizations:
path Parameters
identifier
required
string
plan_identifier
required
string
header Parameters
Lookup-Field
string

Name of field used as resource identifiers. Possible values: uuid, code

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/plans/%7Bplan_identifier%7D/terms/%7Bidentifier%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE' \
  --header 'Lookup-Field: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "code": "string",
  • "interval_type": "day",
  • "interval_count": 1,
  • "price": "string",
  • "currency": "DKK",
  • "backwards_charging": true,
  • "active": true,
  • "revenue_group": "string",
  • "model": "string",
  • "schema": "string"
}

api_v1_plans_terms_partial_update

button

Authorizations:
path Parameters
identifier
required
string
plan_identifier
required
string
header Parameters
Lookup-Field
string

Name of field used as resource identifiers. Possible values: uuid, code

Request Body schema: application/json
code
string or null (Code) <= 128 characters

ID from external system. If you don't have one you can just put any unique value here by which you will be able to reference this object on other items.

interval_type
required
string (Interval type)
Enum: "day" "month" "year"
interval_count
required
integer (Interval count) [ 1 .. 2147483647 ]
price
required
string <decimal> (Price)
currency
required
string (Currency)
Enum: "DKK" "EUR" "USD" "GBP" "NZD" "CHF" "PLN" "SEK" "NOK" "ISK" "AUD" "CAD"
active
boolean (Active)
revenue_group
string or null (Revenue group)

Name of the Revenue Group (only if Revenue Group feature is enabled, also field is required then).

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "interval_type": "day",
  • "interval_count": 1,
  • "price": "string",
  • "currency": "DKK",
  • "active": true,
  • "revenue_group": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "code": "string",
  • "interval_type": "day",
  • "interval_count": 1,
  • "price": "string",
  • "currency": "DKK",
  • "backwards_charging": true,
  • "active": true,
  • "revenue_group": "string",
  • "model": "string",
  • "schema": "string"
}

ContractTier

api_v1_accounts_contracts_tiers_list

button

Authorizations:
path Parameters
code
required
string
contract_pk
required
string
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/contracts/%7Bcontract_pk%7D/tiers/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_accounts_contracts_tiers_create

button

Authorizations:
path Parameters
code
required
string
contract_pk
required
string
Request Body schema: application/json
minimum_quantity
required
integer (Minimum quantity) [ -2147483648 .. 2147483647 ]

Apply the discount only when client buys at least that many licenses.

maximum_quantity
integer (Maximum quantity) [ -2147483648 .. 2147483647 ]

Apply the discount at max to that many licenses. 0 means unlimited.

discount
string <decimal> (Discount)
discount_type
string (Discount type)
Enum: "percent" "flat"
overall_flat_discount
string <decimal> (Fixed total discount)
only_apply_to_quantity_above_minimal
boolean (Apply only to quantity within range)

This field signifies if the tier applies to all of subscription's quantity (False) up to maximum quantity or only to the quantity between minimum quantity and maximum quantity, both ends included (True)

Responses

Request samples

Content type
application/json
{
  • "minimum_quantity": -2147483648,
  • "maximum_quantity": -2147483648,
  • "discount": "string",
  • "discount_type": "percent",
  • "overall_flat_discount": "string",
  • "only_apply_to_quantity_above_minimal": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "minimum_quantity": -2147483648,
  • "maximum_quantity": -2147483648,
  • "discount": "string",
  • "discount_type": "percent",
  • "overall_flat_discount": "string",
  • "only_apply_to_quantity_above_minimal": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_tiers_read

button

Authorizations:
path Parameters
code
required
string
contract_pk
required
string
id
required
integer

A unique integer value identifying this contract tier.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/contracts/%7Bcontract_pk%7D/tiers/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "id": 0,
  • "minimum_quantity": -2147483648,
  • "maximum_quantity": -2147483648,
  • "discount": "string",
  • "discount_type": "percent",
  • "overall_flat_discount": "string",
  • "only_apply_to_quantity_above_minimal": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_tiers_update

button

Authorizations:
path Parameters
code
required
string
contract_pk
required
string
id
required
integer

A unique integer value identifying this contract tier.

Request Body schema: application/json
minimum_quantity
required
integer (Minimum quantity) [ -2147483648 .. 2147483647 ]

Apply the discount only when client buys at least that many licenses.

maximum_quantity
integer (Maximum quantity) [ -2147483648 .. 2147483647 ]

Apply the discount at max to that many licenses. 0 means unlimited.

discount
string <decimal> (Discount)
discount_type
string (Discount type)
Enum: "percent" "flat"
overall_flat_discount
string <decimal> (Fixed total discount)
only_apply_to_quantity_above_minimal
boolean (Apply only to quantity within range)

This field signifies if the tier applies to all of subscription's quantity (False) up to maximum quantity or only to the quantity between minimum quantity and maximum quantity, both ends included (True)

Responses

Request samples

Content type
application/json
{
  • "minimum_quantity": -2147483648,
  • "maximum_quantity": -2147483648,
  • "discount": "string",
  • "discount_type": "percent",
  • "overall_flat_discount": "string",
  • "only_apply_to_quantity_above_minimal": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "minimum_quantity": -2147483648,
  • "maximum_quantity": -2147483648,
  • "discount": "string",
  • "discount_type": "percent",
  • "overall_flat_discount": "string",
  • "only_apply_to_quantity_above_minimal": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_tiers_partial_update

button

Authorizations:
path Parameters
code
required
string
contract_pk
required
string
id
required
integer

A unique integer value identifying this contract tier.

Request Body schema: application/json
minimum_quantity
required
integer (Minimum quantity) [ -2147483648 .. 2147483647 ]

Apply the discount only when client buys at least that many licenses.

maximum_quantity
integer (Maximum quantity) [ -2147483648 .. 2147483647 ]

Apply the discount at max to that many licenses. 0 means unlimited.

discount
string <decimal> (Discount)
discount_type
string (Discount type)
Enum: "percent" "flat"
overall_flat_discount
string <decimal> (Fixed total discount)
only_apply_to_quantity_above_minimal
boolean (Apply only to quantity within range)

This field signifies if the tier applies to all of subscription's quantity (False) up to maximum quantity or only to the quantity between minimum quantity and maximum quantity, both ends included (True)

Responses

Request samples

Content type
application/json
{
  • "minimum_quantity": -2147483648,
  • "maximum_quantity": -2147483648,
  • "discount": "string",
  • "discount_type": "percent",
  • "overall_flat_discount": "string",
  • "only_apply_to_quantity_above_minimal": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "minimum_quantity": -2147483648,
  • "maximum_quantity": -2147483648,
  • "discount": "string",
  • "discount_type": "percent",
  • "overall_flat_discount": "string",
  • "only_apply_to_quantity_above_minimal": true,
  • "model": "string",
  • "schema": "string"
}

api_v1_accounts_contracts_tiers_delete

button

Authorizations:
path Parameters
code
required
string
contract_pk
required
string
id
required
integer

A unique integer value identifying this contract tier.

Responses

Request samples

curl --request DELETE \
  --url https://app.fenerum.com/api/v1/accounts/%7Bcode%7D/contracts/%7Bcontract_pk%7D/tiers/%7Bid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Webhook

A webhook is a custom callback that can be leveraged to be notified of events in Fenerum. If we dont't receive a 2xx response from your endpoint we will retry the webhook up to 4 times (5 calls in total). The retries are spread randomly; first one comes after 5 minutes and the last one can come up to 55 hours after the initial webhook call. If all of the retried responses were unsuccessful we consider this webhook event failed. If at any time you reach 10 consecutive failed webhook events (in the above meaning) we will automatically disable that webhook. You can read about specific callbacks here.

api_v1_webhooks_list

button

A webhook is a custom callback that can be leveraged to be notified of events in Fenerum.

Authorizations:
query Parameters
page
integer

A page number within the paginated result set.

page_size
integer

Number of results to return per page.

Responses

Request samples

curl --request GET \
  --url 'https://app.fenerum.com/api/v1/webhooks/?page=SOME_INTEGER_VALUE&page_size=SOME_INTEGER_VALUE' \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "count": 0,
  • "previous": "http://example.com",
  • "results": [
    ]
}

api_v1_webhooks_create

button

A webhook is a custom callback that can be leveraged to be notified of events in Fenerum.

Authorizations:
Request Body schema: application/json
endpoint
required
string <uri> (Endpoint) non-empty
basic_auth_username
string or null (Basic auth username) <= 128 characters
basic_auth_password
string or null (Basic auth password) <= 128 characters
enabled
boolean (Enabled)
events
Array of strings (Events)
Items Enum: "account.updated" "account.created" "plan_terms.updated" "plan_terms.created" "new_invoice" "paid_invoice" "cancel_subscription" "reactivate_subscription" "renew_subscription_soon" "new_activity" "payment.authentication_required" "payment.declined" "card_expires_this_month" "payment_card.activated" "payment_card.deactivated"

Responses

Request samples

Content type
application/json
{
  • "endpoint": "http://example.com",
  • "basic_auth_username": "string",
  • "basic_auth_password": "string",
  • "enabled": true,
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "endpoint": "http://example.com",
  • "basic_auth_username": "string",
  • "basic_auth_password": "string",
  • "enabled": true,
  • "events": [
    ],
  • "model": "string",
  • "schema": "string"
}

api_v1_webhooks_read

button

A webhook is a custom callback that can be leveraged to be notified of events in Fenerum.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this webhook.

Responses

Request samples

curl --request GET \
  --url https://app.fenerum.com/api/v1/webhooks/%7Buuid%7D/ \
  --header 'Authorization: REPLACE_KEY_VALUE'

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "endpoint": "http://example.com",
  • "basic_auth_username": "string",
  • "basic_auth_password": "string",
  • "enabled": true,
  • "events": [
    ],
  • "model": "string",
  • "schema": "string"
}

api_v1_webhooks_update

button

A webhook is a custom callback that can be leveraged to be notified of events in Fenerum.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this webhook.

Request Body schema: application/json
endpoint
required
string <uri> (Endpoint) non-empty
basic_auth_username
string or null (Basic auth username) <= 128 characters
basic_auth_password
string or null (Basic auth password) <= 128 characters
enabled
boolean (Enabled)
events
Array of strings (Events)
Items Enum: "account.updated" "account.created" "plan_terms.updated" "plan_terms.created" "new_invoice" "paid_invoice" "cancel_subscription" "reactivate_subscription" "renew_subscription_soon" "new_activity" "payment.authentication_required" "payment.declined" "card_expires_this_month" "payment_card.activated" "payment_card.deactivated"

Responses

Request samples

Content type
application/json
{
  • "endpoint": "http://example.com",
  • "basic_auth_username": "string",
  • "basic_auth_password": "string",
  • "enabled": true,
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "endpoint": "http://example.com",
  • "basic_auth_username": "string",
  • "basic_auth_password": "string",
  • "enabled": true,
  • "events": [
    ],
  • "model": "string",
  • "schema": "string"
}

api_v1_webhooks_partial_update

button

A webhook is a custom callback that can be leveraged to be notified of events in Fenerum.

Authorizations:
path Parameters
uuid
required
string <uuid>

A UUID string identifying this webhook.

Request Body schema: application/json
endpoint
required
string <uri> (Endpoint) non-empty
basic_auth_username
string or null (Basic auth username) <= 128 characters
basic_auth_password
string or null (Basic auth password) <= 128 characters
enabled
boolean (Enabled)
events
Array of strings (Events)
Items Enum: "account.updated" "account.created" "plan_terms.updated" "plan_terms.created" "new_invoice" "paid_invoice" "cancel_subscription" "reactivate_subscription" "renew_subscription_soon" "new_activity" "payment.authentication_required" "payment.declined" "card_expires_this_month" "payment_card.activated" "payment_card.deactivated"

Responses

Request samples

Content type
application/json
{
  • "endpoint": "http://example.com",
  • "basic_auth_username": "string",
  • "basic_auth_password": "string",
  • "enabled": true,
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "endpoint": "http://example.com",
  • "basic_auth_username": "string",
  • "basic_auth_password": "string",
  • "enabled": true,
  • "events": [
    ],
  • "model": "string",
  • "schema": "string"
}

Webhook callbacks

Here you can read about the payloads that are sent with webhook callbacks. Each request will be sent to the url specified in the endpoint field.

account.created

Request Body schema: application/json
event
string (Event) non-empty
Default: "account.created"
object (Account)

Responses

Request samples

Content type
application/json
{
  • "event": "account.created",
  • "data": {
    }
}

account.updated

Request Body schema: application/json
event
string (Event) non-empty
Default: "account.updated"
object (Account)

Responses

Request samples

Content type
application/json
{
  • "event": "account.updated",
  • "data": {
    }
}

plan_terms.created

Request Body schema: application/json
event
string (Event) non-empty
Default: "plan_terms.created"
object (WebhookPlanTerms)

Responses

Request samples

Content type
application/json
{
  • "event": "plan_terms.created",
  • "data": {
    }
}

plan_terms.updated

Request Body schema: application/json
event
string (Event) non-empty
Default: "plan_terms.updated"
object (WebhookPlanTerms)

Responses

Request samples

Content type
application/json
{
  • "event": "plan_terms.updated",
  • "data": {
    }
}

new_invoice

Request Body schema: application/json
event
string (Event) non-empty
Default: "new_invoice"
object (WebhookInvoice)

Responses

Request samples

Content type
application/json
{
  • "event": "new_invoice",
  • "data": {
    }
}

paid_invoice

Request Body schema: application/json
event
string (Event) non-empty
Default: "paid_invoice"
object (WebhookInvoice)

Responses

Request samples

Content type
application/json
{
  • "event": "paid_invoice",
  • "data": {
    }
}

cancel_subscription

Request Body schema: application/json
event
string (Event) non-empty
Default: "cancel_subscription"
object (WebhookSubscription)

Responses

Request samples

Content type
application/json
{
  • "event": "cancel_subscription",
  • "data": {
    }
}

reactivate_subscription

Request Body schema: application/json
event
string (Event) non-empty
Default: "reactivate_subscription"
object (WebhookSubscription)

Responses

Request samples

Content type
application/json
{
  • "event": "reactivate_subscription",
  • "data": {
    }
}

renew_subscription_soon

Request Body schema: application/json
event
string (Event) non-empty
Default: "renew_subscription_soon"
object (WebhookSubscription)

Responses

Request samples

Content type
application/json
{
  • "event": "renew_subscription_soon",
  • "data": {
    }
}

new_activity

Request Body schema: application/json
event
string (Event) non-empty
Default: "new_activity"
object (Activity)

Responses

Request samples

Content type
application/json
{
  • "event": "new_activity",
  • "data": {
    }
}

payment.declined

Request Body schema: application/json
event
string (Event) non-empty
Default: "payment.declined"
object (WebhookCardPayment)

Responses

Request samples

Content type
application/json
{
  • "event": "payment.declined",
  • "data": {
    }
}

card_expires_this_month

Request Body schema: application/json
event
string (Event) non-empty
Default: "card_expires_this_month"
object (PaymentCard)

Responses

Request samples

Content type
application/json
{
  • "event": "card_expires_this_month",
  • "data": {
    }
}

payment_card.activated

Request Body schema: application/json
event
string (Event) non-empty
Default: "payment_card.activated"
object (PaymentCard)

Responses

Request samples

Content type
application/json
{
  • "event": "payment_card.activated",
  • "data": {
    }
}

payment_card.deactivated

Request Body schema: application/json
event
string (Event) non-empty
Default: "payment_card.deactivated"
object (PaymentCard)

Responses

Request samples

Content type
application/json
{
  • "event": "payment_card.deactivated",
  • "data": {
    }
}