Billing API v1 (Current)¶
This page contains all endpoints for the Billing API v1.
Every call requires your API Key to be sent via the X-Reseller-Api-Key
header. A 401 UNAUTHORIZED
status code will be sent back if credentials are missing. All the requests needs to have the port 9534.
-
GET
/reseller/billing/v1/currencies/
¶ Get available currencies for your reseller.
Example Response
[ { "exchange_rate": 1.00000000, "iso_code": "CAD", "label": "Canadian dolar", "main": true, "plural_label": "Canadian dolars", "reseller_uuid": "e40c2fd6-5735-44da-9740-03b89d5ee951", "symbol": "$", "uuid": "ff9b6071-ae66-40c6-bea4-8cbcf5475894" }, { "exchange_rate": 1.00000003, "iso_code": "USD", "label": "American Dolar", "main": false, "plural_label": "American dolars", "reseller_uuid": "e40c2fd6-5735-44da-9740-03b89d5ee951", "symbol": "$", "uuid": "77467d30-9a18-4d30-ae8d-6ff1b75b88dc" } ]
-
POST
/reseller/billing/v1/currencies
¶ Creates a new currency.
Parameters: - exchange_rate – rate of the currency compared the your main currency.
- iso_code – ISO code of the currency.
- label – Label of the currency.
- plural_label – Plural label of the currency.
- symbol – Symbol of the currency to display in the portal.
Example Request
{ "exchange_rate": 1.00000003, "iso_code": "USD", "label": "American Dolar", "main": false, "plural_label": "American dolars", "symbol": "$", }
Example Response
{ "exchange_rate": 1.00000003, "iso_code": "USD", "label": "American Dolar", "main": false, "plural_label": "American dolars", "symbol": "$", "uuid": "77461a30-9a18-4d30-ae3g-6ff1b75b88dc", "reseller_uuid": "e40c2fd6-5735-44da-9740-03b89d5ee951" }
-
GET
/reseller/billing/v1/products/
¶ Returns the list of Products.
Status Codes: - 200 OK – Success.
Example Response
{ "products": [ { "billablecategory_slug": "server", "billableunit_slug": "hour", "created_date": "Thu, 20 Dec 2018 16:19:19 GMT", "label": "general.pico.mtl.linux", "last_updated_date": "Thu, 20 Dec 2018 16:19:19 GMT", "metadata": null, "name": "general.pico.mtl.linux", "price_per_unit": 0.00590000, "product_code": "general.pico.mtl.linux", "uuid": "5921bb46-5497-489b-8d1f-e734bd6fc0c8" }, { "billablecategory_slug": "server", "billableunit_slug": "hour", "created_date": "Thu, 20 Dec 2018 16:19:19 GMT", "label": "general.nano.mtl.linux", "last_updated_date": "Thu, 20 Dec 2018 16:19:19 GMT", "metadata": null, "name": "general.nano.mtl.linux", "price_per_unit": 0.01100000, "product_code": "general.nano.mtl.linux", "uuid": "98331403-861d-4c07-a984-4a52175667ac" } ] }
-
POST
/reseller/billing/v1/reports
¶ Generate billing report for time period. The first row shows the report’s column names.
Parameters: - start_date – start date of the invoice in UTC with the format ‘YYYY-MM-DD’ (ex.: ‘2022-01-01’). (required).
- end_date – end date of the invoice in UTC with the format ‘YYYY-MM-DD’ (ex.: ‘2022-01-01’). If it’s not provided it defaults to current date. (optional).
- detail – Adds one row per billable item for each of the projects belonging to each user. (optional). Default value False.
- show_federated_invoices – Adds one row per billable item for each remote client that has resources in the current provider. Also, adds two columns to show the provider and reseller name. (optional). Default value False.
- show_all_resellers – Adds all the billable items of all resellers configured on the system. Also, adds one column to show the reseller name. (optional). Default value False. Only resellers with collection admin role can access this parameter.
Return: Client billing reports in CSV format.
Note
start_date should be smaller or equal than end_date.
Status Codes: - 200 OK – Success.
- 400 Bad Request – Bad request.
- 401 Unauthorized – Unauthorized.
Example Request
{ "start_date": "2022-01-01", "end_date": "2022-03-01", "detail": false, "show_federated_invoices": false, "show_all_resellers": true }
Example Response
client_id,test_account,customer_email,customer_name,subscription_id, invoice_id,invoice_date,invoice_status,invoice_start,invoice_end, invoice_subtotal,invoice_discount_percentage,invoice_discount_flat, invoice_discount_total,invoice_total,customer_metadata,reseller 74422bd3-fcf2-4daa-b9ee-abf7c5acc7cd,False,john.smith@wxyz.com, John Smith,,036abc80-ad20-4d29-ab34-08fed5d6d493,2022-01,not paid, 2022-01-01,2022-01-31,24.04,100,0,24.04,0,{},WXYZ 8aa6c5d7-32ec-493a-aaa9-cdea5c2e4334,True,test@abcd.com, Test abcd,,04cd920b-4769-47e5-8c9f-48a41a03ecb5,2022-03,not paid, 2022-01-01,2022-01-31,1.14,0,0,0,1.31,{},ABCD
-
GET
/reseller/billing/v1/clients/
(client_id)/providers/
(provider_id)/usage/
¶ Returns the Usage of a given Client on a given Provider, separated by Project.
Parameters: - client_id – ID of the Client to retrieve Usage for.
- provider_id – ID of the Provider to get usage for.
Status Codes: - 200 OK – Success.
Example Response
{ "usage": { "usage_period_start": "2017-08-17T20:18:00.000+00:00", "usage_period_end": "2017-09-17T20:18:00.000+00:00", "projects": [ { "id": "fc0aa970-859d-4019-b922-74391576bab1", "name": "client1@ormuco.com-OrmucoNA", "resources": { "floating_ips": [ { "id": "0ad69214-be79-44bd-8709-0ad977696a0c", "name": "24.200.21.45", "description": "Floating IP", "resource_id": "0ad69214-be79-44bd-8709-0ad977696a0c", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 2.14 } ], "servers": [ { "id": "b352e2dd-8111-4005-af15-95f136704ff6", "name": "my best server", "description": "general.kilo.yul.linux", "resource_id": "b352e2dd-8111-4005-af15-95f136704ff6", "uptime": "16:04:12:33", "unit": "hour", "size": null, "total": 15.14 } ], "volumes": [ { "id": "16c2ec9a-8565-4c24-b781-5ff6e2e3386a", "name": "my best volume", "description": "general 40GB", "resource_id": "16c2ec9a-8565-4c24-b781-5ff6e2e3386a", "uptime": "18:03:51:01", "unit": "GB-hour", "size": "40 GB", "storage_type": "general", "total": 3.45 } ], "load_balancers": [ { "id": "82328bb6-08a8-4979-a4eb-e960c6d4f17a", "name": "prod_balancer_01", "description": "Loadbalancer", "resource_id": "82328bb6-08a8-4979-a4eb-e960c6d4f17a", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 13.51 } ], "load_balancers_bandwidth": [ { "id": "6c8fb744-ee77-4b33-8776-42896ef238a4", "name": "prod_balancer_01", "description": "Loadbalancer Bandwidth", "resource_id": "6c8fb744-ee77-4b33-8776-42896ef238a4", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 11.31, "quantity": 34 } ], "server_snapshots": [ { "id": "6d828703-5edb-424a-a482-0510256846e3", "name": "dev_srv_backup4", "description": "50 GiB Server Snapshot", "resource_id": "6d828703-5edb-424a-a482-0510256846e3", "uptime": "18:03:51:01", "unit": "hour", "size": "50 GiB", "total": 4.11 } ], "images": [ { "id": "82904f96-36bb-4a47-bf19-8359495ee33b", "name": "cirros_custom_v4", "description": "250 GiB Image", "resource_id": "82904f96-36bb-4a47-bf19-8359495ee33b", "uptime": "18:03:51:01", "unit": "GiB-hour", "size": "250 GiB", "total": 12.45 } ], "volume_snapshots": [ { "id": "4657bf9c-b260-4d19-abe4-44a46632ec37", "name": "db_backup_v1", "description": "40GiB Volume Snapshot", "resource_id": "4657bf9c-b260-4d19-abe4-44a46632ec37", "uptime": "18:03:51:01", "unit": "GiB-hour", "size": "40 GiB", "total": 3.85 } ], "object_storage": [ { "id": "object_storage", "name": "Object Storage Usage", "description": "Total space used on object storage during the billing period.", "resource_id": null, "unit": "GiB/hour", "size": null, "total": 18.57 } ], "dns_zones": [ { "id": "c5186e94-3c69-4b24-82e0-fad2c6289fda", "name": "domain.com", "description": "DNS Zone", "resource_id": "c5186e94-3c69-4b24-82e0-fad2c6289fda", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 3.45 } ], "network_bandwidth": [ { "id": "c51deba1-d11c-4500-a90f-8ed9f4201ac4", "name": "Ingress", "description": "Network Bytes Ingress", "resource_id": "c51deba1-d11c-4500-a90f-8ed9f4201ac4", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 4.57, "quantity": 66 }, { "id": "c674439d-f243-4410-be85-84315f9b9390", "name": "Egress", "description": "Network Bytes Egress", "resource_id": "c674439d-f243-4410-be85-84315f9b9390", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 4.18, "quantity": 61 } ] } } ], "provider": { "uuid": "c99e7df0-aacb-42d8-9533-9b03f4f0ee73", "name": "Ormuco NA", }, "subtotal": 20.73, "discount_percentage": 0, "discount": 0.00, "taxes": [ { "name": "hst", "rate": 14.975, "amount": 3.10, "description": "Quebec harmonized sales tax" } ], "total": 23.83 } }
-
GET
/reseller/billing/v1/clients/
(client_id)/invoices/last/
¶ Returns the last Invoice of a given Client.
Parameters: - client_id – ID of the Client to retrieve the Invoice for.
Status Codes: - 200 OK – Success.
Note
If the invoice doesn’t have a currency, means that it’s currency is the same as your main currency.
Example Response
{ "invoice": { "client_id": "b3826036-4541-4193-b56f-f0c52fb42eae", "data": { "invoice_discount": 4.45, "invoice_discount_flat": 0, "invoice_discount_percentage": 100, "invoice_discount_percentage_value": 4.45, "invoice_period_end": "2018-09-01T00:00:00+00:00", "invoice_period_start": "2018-08-01T00:00:00+00:00", "invoice_projects": [ { "entities": [ { "active": false, "description": "general.pico.yul.linux", "id": "17cb5d60-4c12-4d5c-beeb-8a01f92da", "name": "ubuntu-16.04.general.pico. yul.linux", "quantity": 17.488333333333333, "rate": 0.0059, "rate_system": "flat", "total": 0.103, "type": "server", "resource_id": "c297353671d5 11e9b608901b 0e31ee9c", "unit": "hour", "size": null, "uptime": "00:17:29:18" }, { "active": false, "description": "general 729GB", "id": "09b94d3f-ebc2-41fd-9018-69765c66d", "name": "esttest", "quantity": 1.9269444444444443, "rate": 0, "rate_system": "flat", "total": 0, "type": "volume", "resource_id": "09b94d3f- ebc2-41fd- 9018-69765c66d", "unit": "GB-hour", "size": "729 GB", "storage_type": "general", "uptime": "00:01:55:37" }, { "active": false, "description": "SSD based storage 1GB", "id": "0c611ff7-7490-482b-a87a-095d7a51f", "name": "asd", "quantity": 0.0033333333333333335, "rate": 0, "rate_system": "flat", "total": 0, "type": "volume", "resource_id": "0c611ff7-7490 -482b-a87a- 095d7a51f", "unit": "GB-hour", "size": "1 GB", "storage_type": "SSD based storage", "uptime": "00:00:00:12" }, { "active": false, "description": "Floating IP", "id": "43097119-dc6d-4048-a5e8- aba5abd7606e", "name": "192.207.60.158", "quantity": 0.004166666666666667, "rate": 0, "rate_system": "flat", "total": 0, "type": "floatingip", "resource_id": "43097119-dc6d -4048-a5e8- aba5abd7606e", "unit": "hour", "size": null, "uptime": "00:00:00:15" }, { "active": true, "description": "Zone", "id": "f8318447-2771-4b9c-9fa8-bbe112d10", "name": "test.com.", "quantity": 1, "rate": 0, "rate_system": "flat", "total": 0, "type": "zone", "resource_id": "f8318447-2771 -4b9c-9fa8- bbe112d10", "unit": "hour", "size": null, "uptime": "31:00:00:00" }, { "active": false, "description": "0.0 GiB Volume Snapshot", "id": "b4fb0036-936e-4702-afce-2993abeb0", "name": "juan test", "quantity": 0, "rate": 0, "rate_system": "flat", "total": 0, "type": "volumesnapshot", "resource_id": "b4fb0036 -936e-4702 -afce-2993abeb0", "unit": "GiB-hour", "size": "0.0 GiB", "uptime": "00:00:11:21" }, { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "14a85e42-87d4-4e48-bf50-67e1fa144b5c", "name": "js.mantilla128@gmail.com-Ormuco-MTL", "region": "yul-hyp-002", "total": 4.45 }, { "entities": [ { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "fe36b3a3-012c-48b7-a85a-76769af8bd42", "name": "test 2+", "region": "yul-hyp-002", "total": 0 } ], "invoice_subtotal": 4.45, "invoice_taxes": [], "invoice_total": 0, "subscription_period_end": "Sat, 01 Sep 2018 00:00:00 GMT", "subscription_period_start": "Wed, 01 Aug 2018 00:00:00 GMT" }, "date_deleted": null, "deleted": false, "id": "331e2d9c-eaa8-465a-b57e-8c36bc1e6a1a", "paid": false, "processed": true } }
-
GET
/reseller/billing/v1/clients/
(client_id)/projects/
(project_id)/usage/
¶ Returns the Usage of a given Client on a given Project.
Parameters: - client_id – ID of the Client to retrieve Usage for.
- project_id – ID of the Project to get usage for.
Status Codes: - 200 OK – Success.
Example Response
{ "usage": { "usage_period_start": "2017-08-17T20:18:00.000+00:00", "usage_period_end": "2017-09-17T20:18:00.000+00:00", "project": { "id": "8ec0a30f-1c2a-4c7c-bceb-8f3c68e1f037", "name": "client1@ormuco.com-OrmucoNA", "resources": { "floating_ips": [ { "id": "0ad69214-be79-44bd-8709-0ad977696a0c", "name": "24.200.21.45", "description": "Floating IP", "resource_id": "0ad69214-be79-44bd-8709-0ad977696a0c", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 2.14 } ], "servers": [ { "id": "b352e2dd-8111-4005-af15-95f136704ff6", "name": "my best server", "description": "general.kilo.yul.linux", "resource_id": "6d457fd5784611e9b1e0901b0e31ee9c", "uptime": "16:04:12:33", "unit": "hour", "size": null, "total": 15.14 } ], "volumes": [ { "id": "16c2ec9a-8565-4c24-b781-5ff6e2e3386a", "name": "my best volume", "description": "general 40GB", "resource_id": "16c2ec9a-8565-4c24-b781-5ff6e2e3386a", "uptime": "18:03:51:01", "unit": "GB-hour", "size": "40 GB", "storage_type": "general", "total": 3.45 } ], "load_balancers": [ { "id": "82328bb6-08a8-4979-a4eb-e960c6d4f17a", "name": "prod_balancer_01", "description": "Loadbalancer", "resource_id": "82328bb6-08a8-4979-a4eb-e960c6d4f17a", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 13.51 } ], "load_balancers_bandwidth": [ { "id": "6c8fb744-ee77-4b33-8776-42896ef238a4", "name": "prod_balancer_01", "description": "Loadbalancer Bandwidth", "resource_id": "6c8fb744-ee77-4b33-8776-42896ef238a4", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 11.31, "quantity": 34 } ], "server_snapshots": [ { "id": "6d828703-5edb-424a-a482-0510256846e3", "name": "dev_srv_backup4", "description": "50 GiB Server Snapshot", "resource_id": "6d828703-5edb-424a-a482-0510256846e3", "uptime": "18:03:51:01", "unit": "hour", "size": "50 GiB", "total": 4.11 } ], "images": [ { "id": "82904f96-36bb-4a47-bf19-8359495ee33b", "name": "cirros_custom_v4", "description": "250 GiB Image", "resource_id": "82904f96-36bb-4a47-bf19-8359495ee33b", "uptime": "18:03:51:01", "unit": "GiB-hour", "size": "250 GiB", "total": 12.45 } ], "volume_snapshots": [ { "id": "4657bf9c-b260-4d19-abe4-44a46632ec37", "name": "db_backup_v1", "description": "40GiB Volume Snapshot", "resource_id": "4657bf9c-b260-4d19-abe4-44a46632ec37", "uptime": "18:03:51:01", "unit": "GiB-hour", "size": "40 GiB", "total": 3.85 } ], "object_storage": [ { "id": "object_storage", "name": "Object Storage Usage", "description": "Total space used on object storage during the billing period.", "resource_id": null, "unit": "GiB/hour", "size": null, "total": 18.57 } ], "dns_zones": [ { "id": "c5186e94-3c69-4b24-82e0-fad2c6289fda", "name": "domain.com", "description": "DNS Zone", "resource_id": "c5186e94-3c69-4b24-82e0-fad2c6289fda", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 3.45 } ], "network_bandwidth": [ { "id": "c51deba1-d11c-4500-a90f-8ed9f4201ac4", "name": "Ingress", "description": "Network Bytes Ingress", "resource_id": "c51deba1-d11c-4500-a90f-8ed9f4201ac4", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 4.57, "quantity": 66 }, { "id": "c674439d-f243-4410-be85-84315f9b9390", "name": "Egress", "description": "Network Bytes Egress", "resource_id": "c674439d-f243-4410-be85-84315f9b9390", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 4.18, "quantity": 61 } ] } }, "subtotal": 20.73, "discount_percentage": 0, "discount": 0.00, "taxes": [ { "name": "hst", "rate": 14.975, "amount": 3.10, "description": "Quebec harmonized sales tax" } ], "total": 23.83 } }
-
PATCH
/reseller/billing/v1/products/
(product_uuid)/metadata/
¶ Edits the metadata field for products
Parameters: - metadata – value to be placed in metadata field of the product
Status Codes: - 200 OK – Success.
-
PATCH
/reseller/billing/v1/resource/
(resource_id)/metadata/
¶ Edits the reseller_metadata field of a project’s resource. This is availible for all billable resources except for object storage.
Parameters: - resource_id – The id of the billable resource we wish to update
- metadata – The json object to put in the metadata field.
Status Codes: - 200 OK – Success.
-
GET
/reseller/billing/v1/clients/
(client_id)/invoices/
(invoice_id)/
¶ Returns the details of one Invoice for a given Client.
Parameters: - client_id – ID of the Client to retrieve the Invoice for.
- invoice_id – ID of the Invoice to return.
Status Codes: - 200 OK – Success.
Note
If the invoice doesn’t have a currency, means that it’s currency is the same as your main currency.
Example Response
{ "invoice": { "client_id": "b3826036-4541-4193-b56f-f0c52fb42eae", "data": { "invoice_discount": 4.45, "invoice_discount_flat": 0, "invoice_discount_percentage": 100, "invoice_discount_percentage_value": 4.45, "invoice_period_end": "2018-09-01T00:00:00+00:00", "invoice_period_start": "2018-08-01T00:00:00+00:00", "invoice_projects": [ { "entities": [ { "active": false, "description": "general.pico.yul.linux", "id": "17cb5d60-4c12-4d5c-beeb-8ade692da", "name": "ubuntu-16.04.general. pico.yul.linux", "quantity": 17.488333333333333, "rate": 0.0059, "rate_system": "flat", "total": 0.103, "type": "server", "resource_id": "1c343f261 d6a1e9b1e 0901b0e31ee9c", "unit": "hour", "size": null, "uptime": "00:17:29:18" }, { "active": false, "description": "general.pico. yul.linux", "id": "40023df5-bd5c-4d7c-bf57- 350fd063ae8a", "name": "stack-asdqde-server", "quantity": 0.3433333333333334, "rate": 0.0059, "rate_system": "flat", "total": 0.01, "type": "server", "resource_id": "40023df5-bd5c -4d7c-bf57- 350fd063ae8a", "unit": "hour", "size": null, "uptime": "00:00:20:36" }, { "active": false, "description": "general 729GB", "id": "09b94d3f-ebc2-41fd-9018- 697653ebc66d", "name": "esttest", "quantity": 1404.7425, "rate": 0, "rate_system": "flat", "total": 0, "type": "volume", "resource_id": "09b94d3f-ebc2 -41fd-9018- 697653ebc66d", "unit": "GB-hour", "size": "729 GB", "storage_type": "general", "uptime": "00:01:55:37" }, { "active": false, "description": "SSD based storage 1GB", "id": "0c611ff7-7490-482b-a87a-095cf6d1f", "name": "asd", "quantity": 0.0033333333333333335, "rate": 0, "rate_system": "flat", "total": 0, "type": "volume", "resource_id": "0c611ff7-7490- 482b-a87a- 095cf6d1f", "unit": "GB-hour", "size": "1 GB", "storage_type": "SSD based storage", "uptime": "00:00:00:12" }, { "active": false, "description": "Floating IP", "id": "43097119-dc6d-4048-a5e8-aba5ab06e", "name": "192.207.60.158", "quantity": 0.004166666666666667, "rate": 0, "rate_system": "flat", "total": 0, "type": "floatingip", "resource_id": "43097119- dc6d-4048-a5e8 -aba5ab06e", "unit": "hour", "size": "1 GB", "uptime": "00:00:00:15" }, { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "14a85e42-87d4-4e48-bf50-67e1fa144b5c", "name": "js.mantilla128@gmail.com-Ormuco-MTL", "region": "yul-hyp-002", "total": 4.45 }, { "entities": [ { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "fe36b3a3-012c-48b7-a85a-76769af8bd42", "name": "test 2+", "region": "yul-hyp-002", "total": 0 } ], "invoice_subtotal": 4.45, "invoice_taxes": [], "invoice_total": 0, "subscription_period_end": "Sat, 01 Sep 2018 00:00:00 GMT", "subscription_period_start": "Wed, 01 Aug 2018 00:00:00 GMT" }, "date_deleted": null, "deleted": false, "id": "331e2d9c-eaa8-465a-b57e-8c36bc1e6a1a", "paid": false, "processed": true } }
-
GET
/reseller/billing/v1/clients/
(client_id)/invoices/
¶ Returns a list of Invoices for a Client.
Parameters: - client_id – ID of the Client to retrieve Invoices for.
Status Codes: - 200 OK – Success.
Note
If the invoice doesn’t have a currency, means that it’s currency is the same as your main currency.
Example Response
{ "invoices": [ { "client_id": "b3826036-4541-4193-b56f-f0c52fb42eae", "data": { "invoice_discount": 4.45, "invoice_discount_flat": 0, "invoice_discount_percentage": 100, "invoice_discount_percentage_value": 4.45, "invoice_period_end": "2018-09-01T00:00:00+00:00", "invoice_period_start": "2018-08-01T00:00:00+00:00", "invoice_projects": [ { "entities": [ { "active": false, "description": "general.pico. yul.linux", "id": "17cb5d60-4c12-4d5c-beeb- 8a01fde692da", "name": "ubuntu-16.04.general.pico. yul.linux", "quantity": 17.488333333333333, "rate": 0.0059, "rate_system": "flat", "total": 0.103, "type": "server", "resource_id": "a157583671d 511e9b60890 1b0e31ee9c", "unit": "hour", "size": null, "uptime": "00:17:29:18" }, { "active": false, "description": "general 729GB", "id": "09b94d3f-ebc2-41fd-9018- 697653ebc66d", "name": "esttest", "quantity": 1404.7425, "rate": 0, "rate_system": "flat", "total": 0, "type": "volume", "resource_id": "09b94d3f-ebc2- 41fd-9018- 697653ebc66d", "unit": "GB-hour", "storage_type": "general", "size": "729 GB", "uptime": "00:01:55:37" }, { "active": false, "description": "SSD based storage 1GB", "id": "0c611ff7-7490-482b-a87a- 095cf6d7a51f", "name": "asd", "quantity": 0.0033333333333333335, "rate": 0, "rate_system": "flat", "total": 0, "type": "volume", "resource_id": "0c611ff7-7490-482b- a87a-095cf6d7a51f", "unit": "GB-hour", "storage_type": "SSD based storage", "size": "1 GB", "uptime": "00:00:00:12" }, { "active": true, "description": "Floating IP", "id": "dc568e51-a7a1-44d6-831e- 0a2b324baf79", "name": "192.207.60.115", "quantity": 724.7875, "rate": 0, "rate_system": "flat", "total": 0, "type": "floatingip", "resource_id": "dc568e51-a7a1-44d6- 831e-0a2b324baf79", "unit": "hour", "size": null, "uptime": "30:04:47:15" }, { "active": true, "description": "Zone", "id": "f8318447-2771-4b9c-9fa8- bbe112da7b10", "name": "test.com.", "quantity": 1, "rate": 0, "rate_system": "flat", "total": 0, "type": "zone", "resource_id": "f8318447-2771-4b9c- 9fa8-bbe112da7b10", "unit": "hour", "size": null, "uptime": "31:00:00:00" }, { "active": false, "description": "0.0 GiB Volume Snapshot", "id": "b4fb0036-936e-4702-afce- 299b8e3abeb0", "name": "juan test", "quantity": 0, "rate": 0, "rate_system": "flat", "total": 0, "type": "volumesnapshot", "resource_id": "b4fb0036-936e- 4702-afce- 299b8e3abeb0", "unit": "hour", "size": "0.0 GiB", "uptime": "00:00:11:21" }, { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "14a85e42-87d4-4e48-bf50-67e1fa144b5c", "name": "js.mantilla128@gmail.com-Ormuco-MTL", "region": "yul-hyp-002", "total": 4.45 }, { "entities": [ { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "fe36b3a3-012c-48b7-a85a-76769af8bd42", "name": "test 2+", "region": "yul-hyp-002", "total": 0 } ], "invoice_subtotal": 4.45, "invoice_taxes": [], "invoice_total": 0, "subscription_period_end": "Sat, 01 Sep 2018 00:00:00 GMT", "subscription_period_start": "Wed, 01 Aug 2018 00:00:00 GMT" }, "date_deleted": null, "deleted": false, "id": "331e2d9c-eaa8-465a-b57e-8c36bc1e6a1a", "paid": false, "processed": true }, { "client_id": "b3826036-4541-4193-b56f-f0c52fb42eae", "data": { "invoice_discount": 1.9, "invoice_discount_flat": 0, "invoice_discount_percentage": 100, "invoice_discount_percentage_value": 1.9, "invoice_period_end": "2018-08-01T00:00:00+00:00", "invoice_period_start": "2018-07-17T20:51:56+00:00", "invoice_projects": [ { "entities": [ { "active": true, "description": "general.pico.yul. linux", "id": "17cb5d60-4c12-4d5c-beeb- 8a01fde692da", "name": "ubuntu-16.04.general.pico.yul. linux", "quantity": 321.5019444444444, "rate": 0.0059, "rate_system": "flat", "total": 1.897, "type": "server", "resource_id": "c135733671d5 73e9b608901b 0e31ee9c", "unit": "hour", "size": null, "uptime": "13:09:30:07" }, { "active": true, "description": "Zone", "id": "f8318447-2771-4b9c-9fa8- bbe112da7b10", "name": "test.com.", "quantity": 1, "rate": 0, "rate_system": "flat", "total": 0, "type": "zone", "resource_id": "f8318447-2771- 4b9c-9fa8- bbe112da7b10", "unit": "hour", "size": null, "uptime": "13:09:42:06" }, { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "14a85e42-87d4-4e48-bf50-67e1fa144b5c", "name": "js.mantilla128@gmail.com-Ormuco-MTL", "region": "yul-hyp-002", "total": 1.9 } ], "invoice_subtotal": 1.9, "invoice_taxes": [], "invoice_total": 0, "subscription_period_end": "Wed, 01 Aug 2018 00:00:00 GMT", "subscription_period_start": "Tue, 17 Jul 2018 20:51:56 GMT" }, "date_deleted": null, "deleted": false, "id": "5513b202-65f9-4526-9064-d72b177d49af", "paid": false, "processed": true }, { "client_id": "b3826036-4541-4193-b56f-f0c52fb42eae", "data": { "invoice_discount": 1.9, "invoice_discount_flat": 0, "invoice_discount_percentage": 100, "invoice_discount_percentage_value": 1.9, "invoice_period_end": "2018-08-01T00:00:00+00:00", "invoice_period_start": "2018-07-17T20:51:56+00:00", "invoice_projects": [ { "entities": [ { "active": true, "description": "general.pico.yul. linux", "id": "17cb5d60-4c12-4d5c-beeb- 8a01fde692da", "name": "ubuntu-16.04.general.pico. yul.linux", "quantity": 321.5019444444444, "rate": 0.0059, "rate_system": "flat", "total": 1.897, "type": "server", "resource_id": "6f12fa561d6a 1e9b1e0901b0 e31ee9c", "unit": "hour", "size": null, "uptime": "13:09:30:07" }, { "active": true, "description": "Zone", "id": "f8318447-2771-4b9c-9fa8- bbe112da7b10", "name": "test.com.", "quantity": 1, "rate": 0, "rate_system": "flat", "total": 0, "type": "zone", "resource_id": "f8318447-2771 -4b9c-9fa8- bbe112da7b10", "unit": "hour", "size": null, "uptime": "13:09:42:06" }, { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "14a85e42-87d4-4e48-bf50-67e1fa144b5c", "name": "js.mantilla128@gmail.com-Ormuco-MTL", "region": "yul-hyp-002", "total": 1.9 } ], "invoice_subtotal": 1.9, "invoice_taxes": [], "invoice_total": 0, "subscription_period_end": "Wed, 01 Aug 2018 00:00:00 GMT", "subscription_period_start": "Tue, 17 Jul 2018 20:51:56 GMT" }, "date_deleted": null, "deleted": false, "id": "a53988ea-15fc-4bbd-b3b5-a23cb83ff8fc", "paid": false, "processed": true }, { "client_id": "b3826036-4541-4193-b56f-f0c52fb42eae", "data": { "invoice_discount": 1.9, "invoice_discount_flat": 0, "invoice_discount_percentage": 100, "invoice_discount_percentage_value": 1.9, "invoice_period_end": "2018-08-01T00:00:00+00:00", "invoice_period_start": "2018-07-17T20:51:56+00:00", "invoice_projects": [ { "entities": [ { "active": true, "description": "general.pico.yul. linux", "id": "17cb5d60-4c12-4d5c-beeb- 8a01fde692da", "name": "ubuntu-16.04.general.pico. yul.linux", "quantity": 321.5019444444444, "rate": 0.0059, "rate_system": "flat", "total": 1.897, "type": "server", "resource_id": "2d78fa231d6 a1e9b1e0901 b0e31ee9c", "unit": "hour", "size": null, "uptime": "13:09:30:07" }, { "active": true, "description": "Zone", "id": "f8318447-2771-4b9c-9fa8- bbe112da7b10", "name": "test.com.", "quantity": 1, "rate": 0, "rate_system": "flat", "total": 0, "type": "zone", "resource_id": "f8318447-2771 -4b9c-9fa8- bbe112da7b10", "unit": "hour", "size": null, "uptime": "13:09:42:06" }, { "description": "Total space used on object storage during the billing period.", "id": "object_storage", "name": "Object Storage Usage", "quantity": 0, "rate": [], "rate_system": "tiered", "total": 0, "type": "object_storage", "resource_id": null, "unit": "GiB/hour" } ], "id": "14a85e42-87d4-4e48-bf50-67e1fa144b5c", "name": "js.mantilla128@gmail.com-Ormuco-MTL", "region": "yul-hyp-002", "total": 1.9 } ], "invoice_subtotal": 1.9, "invoice_taxes": [], "invoice_total": 0, "subscription_period_end": "Wed, 01 Aug 2018 00:00:00 GMT", "subscription_period_start": "Tue, 17 Jul 2018 20:51:56 GMT" }, "date_deleted": null, "deleted": false, "id": "b173f526-1eb7-42ee-9fa7-e6e5f89542eb", "paid": false, "processed": true } ] }
-
GET
/reseller/billing/v1/clients/
(client_id)/usage/
¶ Returns the Usage of a given Client separated by Provider and Project.
Parameters: - client_id – ID of the Client to retrieve Usage for.
Status Codes: - 200 OK – Success.
Example Response
{ "usage": { "usage_period_start": "2017-08-17T20:18:00.000+00:00", "usage_period_end": "2017-09-17T20:18:00.000+00:00", "providers": [ { "id": "f7ef2bc6-cc80-40b5-b6fd-9b306e00e548", "name": "Ormuco NA", "projects": [ { "id": "c63c43d9-6811-4a4a-892b-07ed1c8c41ed", "name": "client1@ormuco.com-OrmucoNA", "resources": { "floating_ips": [ { "id": "0ad69214-be79-44bd-8709-0ad977696a0c", "name": "24.200.21.45", "description": "Floating IP", "resource_id": "0ad69214-be79- 44bd-8709- 0ad977696a0c", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 2.14 } ], "servers": [ { "id": "b352e2dd-8111-4005-af15-95f136704ff6", "name": "my best server", "description": "general.kilo.yul.linux", "resource_id": "4d947e88753b11e 99d66901b0e31ecfa", "uptime": "16:04:12:33", "unit": "hour", "size": null, "total": 15.14 } ], "volumes": [ { "id": "16c2ec9a-8565-4c24-b781-5ff6e2e3386a", "name": "my best volume", "description": "general 40GB", "resource_id": "16c2ec9a-8565 -4c24-b781- 5ff6e2e3386a", "uptime": "18:03:51:01", "unit": "GB-hour", "size": "40 GB", "storage_type": "general", "total": 3.45 } ], "load_balancers": [ { "id": "82328bb6-08a8-4979-a4eb-e960c6d4f17a", "name": "prod_balancer_01", "description": "Loadbalancer", "resource_id": "82328bb6-08a8 -4979-a4eb- e960c6d4f17a", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 13.51 } ], "load_balancers_bandwidth": [ { "id": "6c8fb744-ee77-4b33-8776-42896ef238a4", "name": "prod_balancer_01", "description": "Loadbalancer Bandwidth", "resource_id": "6c8fb744-ee77 -4b33-8776- 42896ef238a4", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 11.31, "quantity": 34 } ], "server_snapshots": [ { "id": "6d828703-5edb-424a-a482-0510256846e3", "name": "dev_srv_backup4", "description": "50 GiB Server Snapshot", "resource_id": "6d828703-5edb -424a-a482- 0510256846e3", "uptime": "18:03:51:01", "unit": "hour", "size": "50 GiB", "total": 4.11 } ], "images": [ { "id": "82904f96-36bb-4a47-bf19-8359495ee33b", "name": "cirros_custom_v4", "description": "250 GiB Image", "resource_id": "82904f96-36bb -4a47-bf19- 8359495ee33b", "uptime": "18:03:51:01", "unit": "GiB-hour", "size": "250 GiB", "total": 12.45 } ], "volume_snapshots": [ { "id": "4657bf9c-b260-4d19-abe4-44a46632ec37", "name": "db_backup_v1", "description": "40GiB Volume Snapshot", "resource_id": "4657bf9c-b260 -4d19-abe4- 44a46632ec37", "uptime": "18:03:51:01", "unit": "GiB-hour", "size": "40 GiB", "total": 3.85 } ], "object_storage": [ { "id": "object_storage", "name": "Object Storage Usage", "description": "Total space used on object storage during the billing period.", "resource_id": null, "unit": "GiB/hour", "size": null, "total": 18.57 } ], "dns_zones": [ { "id": "c5186e94-3c69-4b24-82e0-fad2c6289fda", "name": "domain.com", "description": "DNS Zone", "resource_id": "c5186e94-3c69 -4b24-82e0- fad2c6289fda", "uptime": "18:03:51:01", "unit": "hour", "size": null, "total": 3.45 } ], "network_bandwidth": [ { "id": "c51deba1-d11c-4500-a90f-8ed9f4201ac4", "name": "Ingress", "description": "Network Bytes Ingress", "resource_id": "c51deba1-d11c -4500-a90f- 8ed9f4201ac4", "uptime": "18:03:51:01", "total": 4.57, "unit": "hour", "size": null, "quantity": 66 }, { "id": "c674439d-f243-4410-be85-84315f9b9390", "name": "Egress", "description": "Network Bytes Egress", "resource_id": "c674439d-f243 -4410-be85- 84315f9b9390", "uptime": "18:03:51:01", "total": 4.18, "unit": "hour", "size": null, "quantity": 61 } ] } } ] } ], "subtotal": 20.73, "discount_percentage": 0, "discount": 0.00, "taxes": [ { "name": "hst", "rate": 14.975, "amount": 3.10, "description": "Quebec harmonized sales tax" } ], "total": 23.83 } }
-
PATCH
/reseller/billing/v1/currencies/
(currency_uuid)¶ Updates the exchange rate of the currency with the uuid sent.
Parameters: - currency_uuid – uuid of the currency to update.
Example Request
{ "exchange_rate": 1.00000003 }
Example/invoicese Response
{ "exchange_rate": 1.00000003, "iso_code": "USD", "label": "American Dolar", "plural_label": "American dolars", "reseller_uuid": "e40c2fd1-5735-44da-9740-03b19d5ee951", "symbol": "$", "uuid": "77461a30-9a18-4d30-ae3g-6ff1b75b88dc" }
Ormuco objects types and descriptions¶
A description of the different type of objects used in the Ormuco platform and returned by the API.
Invoice
Attribute | Type | Description |
id | string | Main identifier of the invoice |
client_id | string | Identifier of the client owner of the invoice |
deleted | boolean | Whether the invoice has been marked as
deleted because the owning client has been
deleted.
|
date_deleted | string | The date of deletion (ISO format). Marked
as null if the owning client has not been
deleted.
|
processed | boolean | Whether the invoice creation process has
been completed.
|
paid | boolean | Whether the invoice has been paid by the
client.
|
data | object | Contains more detailed information related
to the content of the invoice.
|
└ invoice_period_start | string | The starting date (ISO format) of the pay
period covered by the invoice.
|
└ invoice_period_end | string | The ending date (ISO format) of the pay
period covered by the invoice.
|
└ invoice_subtotal | number | The total of the invoice before taxes or
rebates.
|
└ invoice_discount_percentage | number | Show how much percentage of reduction is
applied to the invoice if a percentage
based coupon is associated with the client.
|
└ invoice_discount | number | The discounted amount from the invoice, if
a percentage based coupon is present.
|
└ invoice_taxes | array | A list of applicable tax |
└ name
|
string | A short name for the t |
└ rate
|
number | The percentage the tax will app |
└ amount
|
number | The amount of the tax after applying the
tax to the invoice.
|
└ description
|
string | A description of the tax, usually the full
name.
|
└ invoice_total | number | The total of the invoice after taxes and
after the application of the rebate (if
any).
|
└ invoice_projects | array | A list of projects belonging to the user at
the time of the invoice.
|
└ id
|
string | An identifier for the proje |
└ name
|
string | The name of the proje |
└ region
|
string | The name of the region the projects belongs
to, this is the region of the provider.
|
└ total
|
number | The total amount of money billed for the
project, before taxes and rebate.
|
└ entities
|
array | The resources billed for the project,
similar to a line item in an invoice.
|
└ id
|
string | An identifier for the resour |
└ name
|
string | The name of the resour |
└ type
|
string | The type of the resour |
└ quantity
|
number | The quantity of the resources, see
attribute ‘unit’.
|
└ description
|
string | A short description to help identify the
resource.
|
└ unit
|
string | The unit type used in the calculation of
the cost of the resource. Example: ‘hour’.
|
└ uptime
|
string | How long the resource was active during the
pay period. Organized as
days:hours:minutes:seconds.
|
└ active
|
boolean | Whether the resource was still active at
the end of the invoice period.
|
└ rate
|
number | The rate used in the calculation of the
cost of a resource. For most resources the
rate is multiplied by the quantity to know
the total.
|
└ total
|
number | The total cost of the resour |