Products

List all products of an administration

Returns a paginated list of products in the administration. Each page contains 10 products. You can use the page parameter to fetch the next page of products.

Parameters

Parameter Type Description
per_page Integer
query String

Allows filtering by product name.

page Integer

The page to fetch, starting at 1.

currency String

ISO three-character currency code, e.g. EUR or USD.

Example: returns a list of active products

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?
    

Response

        
          
          Status: 200 OK
        
      
[
  {
    "id": "453386406211880921",
    "administration_id": 123,
    "description": "Apple",
    "title": null,
    "identifier": null,
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "453386251579425993",
    "ledger_account_id": "453386251485054137",
    "created_at": "2025-05-07T07:29:52.732Z",
    "updated_at": "2025-05-07T07:29:52.732Z"
  },
  {
    "id": "453386406197200855",
    "administration_id": 123,
    "description": "My product description",
    "title": null,
    "identifier": "SKU1234",
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "453386251579425993",
    "ledger_account_id": "453386251485054137",
    "created_at": "2025-05-07T07:29:52.719Z",
    "updated_at": "2025-05-07T07:29:52.719Z"
  },
  {
    "id": "453386406222366683",
    "administration_id": 123,
    "description": "Pie",
    "title": null,
    "identifier": null,
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "453386251579425993",
    "ledger_account_id": "453386251485054137",
    "created_at": "2025-05-07T07:29:52.743Z",
    "updated_at": "2025-05-07T07:29:52.743Z"
  }
]
      

Example: allows filtering by query

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?query=apple
    

Response

        
          
          Status: 200 OK
        
      
[
  {
    "id": "453386407814105066",
    "administration_id": 123,
    "description": "Apple",
    "title": null,
    "identifier": null,
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "453386251579425993",
    "ledger_account_id": "453386251485054137",
    "created_at": "2025-05-07T07:29:54.261Z",
    "updated_at": "2025-05-07T07:29:54.261Z"
  }
]
      

Example: handles empty search result

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?query=kjashdfjksadhfjk
    

Response

Example: returns a paginated response for page 2

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products.json?page=2&per_page=1
    

Response

        
          
          Status: 200 OK
        
      
[
  {
    "id": "453386409707832330",
    "administration_id": 123,
    "description": "My product description",
    "title": null,
    "identifier": "SKU1234",
    "price": "100.0",
    "currency": "EUR",
    "frequency": null,
    "frequency_type": null,
    "tax_rate_id": "453386251579425993",
    "ledger_account_id": "453386251485054137",
    "created_at": "2025-05-07T07:29:56.067Z",
    "updated_at": "2025-05-07T07:29:56.067Z"
  }
]
      

Returns information about a product

Example: returns a single product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/453386409850438683.json?
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "453386409850438683",
  "administration_id": 123,
  "description": "My product description",
  "title": null,
  "identifier": "SKU1234",
  "price": "100.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "453386251579425993",
  "ledger_account_id": "453386251485054137",
  "created_at": "2025-05-07T07:29:56.203Z",
  "updated_at": "2025-05-07T07:29:56.203Z"
}
      

Example: returns 404 when product does not exist

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/34123123.json?
    

Response

        
          
          Status: 404 Not Found
        
      
{
  "error": "record not found",
  "symbolic": {
    "id": "not_found"
  }
}
      

Returns information about a product based on the identifier

Example: returns a single product based on the identifier

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/identifier/SKU1234.json?
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "453386409980462111",
  "administration_id": 123,
  "description": "My product description",
  "title": null,
  "identifier": "SKU1234",
  "price": "100.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "453386251579425993",
  "ledger_account_id": "453386251485054137",
  "created_at": "2025-05-07T07:29:56.326Z",
  "updated_at": "2025-05-07T07:29:56.326Z"
}
      

Example: returns a single product based on the identifier with dot

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/identifier/aa.bb.json?
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "453386410066445345",
  "administration_id": 123,
  "description": "My product description",
  "title": null,
  "identifier": "aa.bb",
  "price": "100.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "453386251579425993",
  "ledger_account_id": "453386251485054137",
  "created_at": "2025-05-07T07:29:56.409Z",
  "updated_at": "2025-05-07T07:29:56.417Z"
}
      

Example: returns 404 when product does not exist

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XGET \
  https://moneybird.com/api/v2/123/products/identifier/random.json?
    

Response

        
          
          Status: 404 Not Found
        
      
{
  "error": "record not found",
  "symbolic": {
    "id": "not_found"
  }
}
      

Creates a new product

Parameters

Parameter Type Description
product[title] String
product[description] String
product[checkout_description] String
product[price] Decimal

Required

Both a decimal and a string ‘10,95’ are accepted.

product[document_style_id] Integer

Should be a valid document style id.

product[ledger_account_id] Integer

Required

Should be a valid ledger account id.

product[tax_rate_id] Integer

Should be a valid tax rate id.

product[workflow_id] Integer

Should be a valid workflow id.

product[currency] String

Required

ISO three-character currency code, e.g. EUR or USD.

product[checkout_type] String

Can be product or subscription.

product[frequency_type] String

Can be day, week, month, quarter or year.

product[frequency] Integer

Should be an integer >= 1.

product[product_type] String

Can be digital_service, service or product.

product[vat_rate_type] String

Can be standard or reduced.

product[max_amount_per_order] Integer

Should be an integer 0 <= n < 2.

product[identifier] String

Should be unique for the administration.

product[frequency_preset] String

Example: creates a new product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XPOST \
  -d '{"product":{"description":"Geldvogel","price":"50,50","tax_rate_id":453386410245751848,"ledger_account_id":453386410254140458}}' \
  https://moneybird.com/api/v2/123/products.json
    

Response

        
          
          Status: 201 Created
        
      
{
  "id": "453386410297132076",
  "administration_id": 123,
  "description": "Geldvogel",
  "title": null,
  "identifier": null,
  "price": "50.5",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "453386410245751848",
  "ledger_account_id": "453386410254140458",
  "created_at": "2025-05-07T07:29:56.628Z",
  "updated_at": "2025-05-07T07:29:56.628Z"
}
      

Example: returns an error when information is missing

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XPOST \
  -d '{"product":{"title":"","description":"","price":"","tax_rate_id":453386410357949489,"ledger_account_id":453386410365289523}}' \
  https://moneybird.com/api/v2/123/products.json
    

Response

        
          
          Status: 422 Unprocessable Entity
        
      
{
  "error": {
    "title": [
      "can't be blank"
    ],
    "description": [
      "can't be blank"
    ],
    "base": [
      "must contain a title or description"
    ]
  },
  "details": {
    "title": [
      {
        "error": "blank"
      }
    ],
    "description": [
      {
        "error": "blank"
      }
    ],
    "base": [
      {
        "error": "must_have_a_title_or_description"
      }
    ]
  }
}
      

Updates a product

Parameters

Parameter Type Description
product[title] String
product[description] String
product[checkout_description] String
product[price] Decimal

Both a decimal and a string ‘10,95’ are accepted.

product[tax_rate_id] Integer

Should be a valid tax rate id.

product[ledger_account_id] Integer

Should be a valid ledger account id.

product[currency] String

ISO three-character currency code, e.g. EUR or USD.

product[frequency_type] String

Can be day, week, month, quarter or year.

product[frequency] Integer

Should be an integer >= 1.

product[product_type] String

Can be digital_service, service or product.

product[vat_rate_type] String

Can be standard or reduced.

product[checkout_type] String

Can be product or subscription.

product[max_amount_per_order] Integer

Should be an integer 0 <= n < 2.

product[document_style_id] Integer

Should be a valid document style id.

product[workflow_id] Integer

Should be a valid workflow id.

product[identifier] String

Should be unique for the administration.

product[frequency_preset] String

Example: updates a product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XPATCH \
  -d '{"product":{"description":"Updated","price":"123"}}' \
  https://moneybird.com/api/v2/123/products/453386410443932725.json
    

Response

        
          
          Status: 200 OK
        
      
{
  "id": "453386410443932725",
  "administration_id": 123,
  "description": "Updated",
  "title": null,
  "identifier": "SKU1234",
  "price": "123.0",
  "currency": "EUR",
  "frequency": null,
  "frequency_type": null,
  "tax_rate_id": "453386251579425993",
  "ledger_account_id": "453386251485054137",
  "created_at": "2025-05-07T07:29:56.768Z",
  "updated_at": "2025-05-07T07:29:56.816Z"
}
      

Deletes a product

Example: deletes a product

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XDELETE \
  -d '{}' \
  https://moneybird.com/api/v2/123/products/453386410540401720.json
    

Response

Example: deactivates the product when product has details

Request

curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
  -XDELETE \
  -d '{}' \
  https://moneybird.com/api/v2/123/products/453386410636870716.json
    

Response