Moneybird logo
Moneybird API

Subscriptions

Endpoint:https://moneybird.com/api/v2

Subscriptions allow you to automatically invoice customers on a recurring basis for the services you provide.


Get additional charges

GET
https://moneybird.com/api/v2
/{administration_id}/subscriptions/{id}/additional_charges{format}

Get the additional charges of the given subscription.

Get additional chargespath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • idstring | integer · pattern: ^\d+$ · required

    A unique record identifier

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

Get additional chargesquery Parameters

  • include_billedboolean | string

    If true, includes the additional charges that have already been billed. Default is false.

Get additional charges Responses

A subscription additional charge

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • contact_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • subscription_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • product_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • detail_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • amountstring | null
  • pricestring
  • periodstring · pattern: ^[0-9]{6}..[0-9]{6}$
  • descriptionstring

Create an additional charge to be invoiced together with the subscription

POST
https://moneybird.com/api/v2
/{administration_id}/subscriptions/{id}/additional_charges{format}

At the end of the current subscription period, the additional charges are merged where possible and an invoice will be created for them. The invoice will be scheduled for sending together with the subscription invoice, so that they are merged on sending.

Create an additional charge to be invoiced together with the subscriptionpath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • idstring | integer · pattern: ^\d+$ · required

    A unique record identifier

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

Create an additional charge to be invoiced together with the subscription Request Body

Additional properties are allowed

Create an additional charge to be invoiced together with the subscription Responses

Subscription additional charge created

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • contact_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • subscription_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • product_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • detail_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • amountstring | null
  • pricestring
  • periodstring · pattern: ^[0-9]{6}..[0-9]{6}$
  • descriptionstring

Create and schedule an invoice to be sent together with the subscription

POST
https://moneybird.com/api/v2
/{administration_id}/subscriptions/{id}/create_and_schedule_one_off_sales_invoice{format}

Besides the recurring sales invoice for the subscription, you sometimes need to bill separate costs like usage based charges. Ideally you want these costs to be on the same invoice as the subscription invoice. This endpoint allows you to put extra invoice details on the subscription invoice.

This endpoint creates a new sales invoice and schedules it for sending on the same date as the next subscription invoice. During sending, Moneybird will merge both the scheduled invoice and the subscription invoice. This means the contact will receive one sales invoice with multiple invoice details, both from the subscription and from the one off sales invoice.

Create and schedule an invoice to be sent together with the subscriptionpath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • idstring | integer · pattern: ^\d+$ · required

    A unique record identifier

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

Create and schedule an invoice to be sent together with the subscription Request Body

  • sales_invoiceobject

Create and schedule an invoice to be sent together with the subscription Responses

Sales invoice created

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • contact_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • contactobject
  • contact_person_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • contact_person
  • invoice_idstring | null
  • recurring_sales_invoice_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • subscription_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • workflow_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • document_style_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • identity_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • draft_idinteger | null
  • statestring · enum
    Enum values:
    draft
    scheduled
    open
    pending_payment
    reminded
    late
    paid
    uncollectible
  • invoice_datestring | null · date
  • due_datestring · date
  • payment_conditionsstring | null
  • payment_referencestring | null
  • short_payment_referencestring | null
  • referencestring | null
  • languagestring | null
  • currencystring
  • discountstring | null
  • original_sales_invoice_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • pausedboolean
  • paid_atstring | null · date
  • sent_atstring | null · date
  • created_atstring · date-time
  • updated_atstring · date-time
  • public_view_codestring | null
  • public_view_code_expires_atstring | null · date-time
  • versioninteger
  • detailsobject[]
  • paymentsobject[]
  • total_paidstring
  • total_unpaidstring
  • total_unpaid_basestring
  • prices_are_incl_taxboolean
  • total_price_excl_taxstring
  • total_price_excl_tax_basestring
  • total_price_incl_taxstring
  • total_price_incl_tax_basestring
  • total_discountstring
  • marked_dubious_onstring | null · date
  • marked_uncollectible_onstring | null · date
  • reminder_countinteger | null
  • next_reminderstring | null · date
  • original_estimate_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • urlstring
  • payment_urlstring
  • custom_fieldsobject[]
  • notesobject[]
  • attachmentsobject[]
  • eventsobject[]
  • tax_totalsobject[]
  • time_entriesobject[]

Get subscription

GET
https://moneybird.com/api/v2
/{administration_id}/subscriptions/{id}{format}

Get a subscription.

Get subscriptionpath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • idstring | integer · pattern: ^\d+$ · required

    A unique record identifier

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

Get subscription Responses

A subscription

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • start_datestring · date
  • end_datestring | null · date
  • frequencyinteger | null
  • frequency_typestring | null · enum
    Enum values:
    day
    week
    month
    quarter
    year
  • referencestring | null
  • cancelled_atstring | null · date-time
  • product_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • productobject
  • contact_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • contactobject
  • contact_person_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • contact_person
  • subscription_productsobject[]
  • recurring_sales_invoice_idstring | integer | null · pattern: ^\d+$

    A unique record identifier


Cancel a subscription

DELETE
https://moneybird.com/api/v2
/{administration_id}/subscriptions/{id}{format}

Cancels the subscription. Stops the recurring sales invoice for the contact. Optionally you can provide an end_date to stop the subscription on a future date.

Cancel a subscriptionpath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • idstring | integer · pattern: ^\d+$ · required

    A unique record identifier

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

Cancel a subscription Request Body

  • subscriptionobject

Cancel a subscription Responses

Subscription cancelled

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • start_datestring · date
  • end_datestring | null · date
  • frequencyinteger | null
  • frequency_typestring | null · enum
    Enum values:
    day
    week
    month
    quarter
    year
  • referencestring | null
  • cancelled_atstring | null · date-time
  • product_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • productobject
  • contact_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • contactobject
  • contact_person_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • contact_person
  • subscription_productsobject[]
  • recurring_sales_invoice_idstring | integer | null · pattern: ^\d+$

    A unique record identifier


Update a subscription

PATCH
https://moneybird.com/api/v2
/{administration_id}/subscriptions/{id}{format}

Updates the product the contact is subscribed to. This will automatically calculate the differences between the product prices and create a one off sales invoice to bill the extra charge for the remaining billing period.

Optionally you can provide a start date for the product change to become active.

Update a subscriptionpath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • idstring | integer · pattern: ^\d+$ · required

    A unique record identifier

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

Update a subscription Request Body

  • subscriptionobject

Update a subscription Responses

Subscription updated

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • start_datestring · date
  • end_datestring | null · date
  • frequencyinteger | null
  • frequency_typestring | null · enum
    Enum values:
    day
    week
    month
    quarter
    year
  • referencestring | null
  • cancelled_atstring | null · date-time
  • product_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • productobject
  • contact_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • contactobject
  • contact_person_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • contact_person
  • subscription_productsobject[]
  • recurring_sales_invoice_idstring | integer | null · pattern: ^\d+$

    A unique record identifier


List all subscriptions

GET
https://moneybird.com/api/v2
/{administration_id}/subscriptions{format}

Lists all subscriptions for the given contact.

List all subscriptionspath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

List all subscriptionsquery Parameters

  • contact_idstring | integer · pattern: ^\d+$ · required

    A unique record identifier

List all subscriptions Responses

A list of subscriptions

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • start_datestring · date
  • end_datestring | null · date
  • frequencyinteger | null
  • frequency_typestring | null · enum
    Enum values:
    day
    week
    month
    quarter
    year
  • referencestring | null
  • cancelled_atstring | null · date-time
  • product_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • productobject
  • contact_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • contactobject
  • contact_person_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • contact_person
  • subscription_productsobject[]
  • recurring_sales_invoice_idstring | integer | null · pattern: ^\d+$

    A unique record identifier


Create a new subscription

POST
https://moneybird.com/api/v2
/{administration_id}/subscriptions{format}

Starts a new subscription for the given contact. The product_id points to a product with a frequency, price and description. A recurring sales invoice is automatically created to bill the contact for the given frequency. The first invoice will be sent on the start date, but no sooner than tomorrow. The reference will be added to the sales invoices.

Optionally you can create a subscription with a different frequency than stored in the product. Make sure the frequency of the product and the provided frequency are compatible. E.g. you can bill a monthly product yearly.

Create a new subscriptionpath Parameters

  • administration_idstring | integer · pattern: ^\d+$ · required

    The unique identifier of the administration

    A unique record identifier of an administration

  • formatstring · pattern: ^(.(json|xml))?$ · required

    The format in which the response is given, can be empty to use the default format

    Default: .json

Create a new subscription Request Body

  • subscriptionobject

Create a new subscription Responses

Subscription created

  • idstring | integer · pattern: ^\d+$

    A unique record identifier

  • administration_idstring | integer · pattern: ^\d+$

    A unique record identifier of an administration

  • start_datestring · date
  • end_datestring | null · date
  • frequencyinteger | null
  • frequency_typestring | null · enum
    Enum values:
    day
    week
    month
    quarter
    year
  • referencestring | null
  • cancelled_atstring | null · date-time
  • product_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • productobject
  • contact_idstring | integer · pattern: ^\d+$

    A unique record identifier

  • contactobject
  • contact_person_idstring | integer | null · pattern: ^\d+$

    A unique record identifier

  • contact_person
  • subscription_productsobject[]
  • recurring_sales_invoice_idstring | integer | null · pattern: ^\d+$

    A unique record identifier