Currently, access to the Billing Service is handled through JWT tokens. If you are looking to access the Billing Service and use its functionality please email us (doit-billing-service-support@office365.wisc.edu).
Please include the following information in the email:
* Your name
* Your email address
* The name of the service
* The name of the department in-charge of the service
Once your request is reviewed and approved, we will notify you and provide you a JWT token for access.
Please contact us (doit-billing-service-support@office365.wisc.edu) if you need additional help or if you were not able to use the documentation to answer your question.
If you have feedback for us please send us an email.
Billing Service is a REST API which provides an interface for DoIT's Financial System, CBS.
This service allows DoIT Service Providers to send bills for their users to CBS.
The goal of this service is to consolidate billing processes that interact with CBS.
This will allow us to easily switch to a different financial application if CBS were to be replaced, without affecting the billing processes.
Our initial clients are SEO Service Providers for infrastructure services including Physical Server Hosting, Virtual Server Hosting, Bucky Backup and Enterprise Storage, with the intention to expand to other SEO services like Cloud, Azure, etc.
We also intend the Billing Service to be used for reporting purposes and customer inquiries.
Please see [Reporting Database](./docs/reporting-database.md) for more information.
### OpenAPI Specification
Here is a link to our OpenAPI Specification: https://api.test.billing.doit.wisc.edu/api-docs/
The OpenAPI Specification includes descriptions of Billing Service resources and their properties, the available endpoints and supported methods, and examples of requests and responses.
This is the primary location for our API Documentation. Any changes to our API will first be reflected in the OpenAPI Specification.
The Swagger document above allows you to try out the API functionality as well.
You can select the environment you want to interact with and send requests.
You will need the appropriate access token to do so (Please read [Getting Access](./docs/getting-access.md)).
### Responsibilities of Billing Service
The Billing Service API has three resources, `Charge`, `FundingSource`, and `Service`.
#### Charge
The `Charge` resource represents a bill for a customer.
The Billing Service is responsible for submitting valid charges to CBS.
`Charge` resource submission to CBS happens asynchronously from when a user creates the `Charge` resource in the Billing Service.
This allows users of the Billing Service to create `Charge` resources without depending on the availability of CBS.
The Billing Service considers a charge valid if it meets the following criteria:
* The charge is billable (`billable` property is true)
* The charge is billed to a valid `FundingSource` (contains `fundingSourceId` property of a valid `FundingSource`).
* The charge is for a valid `Service` (contains `serviceId` property of a valid `Service`)