openapi: 3.0.0 info: title: Ordoro API Documentation Address Integration API description: "# Introduction\n\nThe Ordoro API can be used to access data or integrate to add functionality to Ordoro. The Ordoro API uses the application/json Content-Type. The Ordoro API documentation is in beta. [See our forum](https://forums.ordoro.com) for questions or comments to help us improve the docs or request features.\n#### Note: Any routes with a /v3 designation will not allow for trailing slashes while all other routes and endpoints will require a trailing slash.\n\n# Authentication\n\nThe Ordoro API uses [Basic HTTP Authentication](http://en.wikipedia.org/wiki/Basic_access_authentication). Please create API keys via Settings->Account Settings->API Keys in app and use those for basic auth in your API requests.\n\n# Additional Resources\n\nFor a look at some code examples on how to use the API check out our github repo https://github.com/ordoro/api-examples.\n\n# API Responses\n\nMost of our endpoints return either a list of objects or a single object instance. They share similar response shapes.\n\n## List endpoints\n\nList endpoints respond with the following parameters:\n\n| Name | Type | Description |\n|----------------|--------------------------|-------------|\n| `count` | int | The total number of objects returned by a query ( **not** necessarily the number of objects included in a response). |\n| `limit` | int | The maximum number of objects returned per request. Defaults to 10. Maximum is 100. You can set this as a URL parameter. |\n| `offset` | int | The number of objects being offset in the response. May be altered as a URL Parameter. |\n| `` | array | An array of objects. The name of the model should be singular. For example, the /v3/order endpoint will have an `order` parameter, as opposed to `orders`.|\n\nHere is an example response for the `/v3/order` list endpoint.\n\n```\n{\n \"count\": 2,\n \"limit\": 10,\n \"offset\" 0,\n \"order\": [\n {\n // an order object\n },\n {\n // another order object\n }\n ]\n}\n```\n\n## Instance endpoints\n\nInstance endpoints return a single instance of a serialized model. `/v3/order/{order_number}` is an example of an instance endpoint.\n\n# Error Handling\n\nError responses contain the following parameters:\n\n| Name | Type | Description |\n|-----------------|------------------|----------------------------------------------------------------------|\n| `error_message` | string | Some human-readable error message. |\n| `param` | string or `null` | The name of the corresponding parameter, or null for general errors. |\n\n# Rate Limiting\n\nAPI requests will be limited to 500 requests per minute. Any requests over this threshold will respond with a 429 status code." contact: {} version: '1.0' servers: - url: https://api.ordoro.com/ variables: {} tags: - name: Integration description: Currently Ordoro offers one type of integration to QuickBooks Online. Orders can be exported from Ordoro to QuickBooks using the integration. paths: /integration/: get: tags: - Integration summary: Get a list of integrations description: 'Get list of integrations - current integrations include: QuickBooks Online, Stripe' operationId: Integration_GET parameters: - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/searchParam' - name: sort in: query description: '' style: form explode: true schema: type: string - name: vendor in: query description: '' style: form explode: true schema: $ref: '#/components/schemas/vendor' - name: type in: query description: '' style: form explode: true schema: $ref: '#/components/schemas/type' - name: all in: query description: allows inclusion of archived integrations style: form explode: true schema: type: boolean responses: '200': description: Successfully retrieved list of integration content: application/json: schema: $ref: '#/components/schemas/integration_list' deprecated: false post: tags: - Integration summary: Create an integration description: Each integration vendor has unique requirements, so the schema will depend on the value of the `vendor` parameter. operationId: Integration_POST parameters: [] responses: '201': description: Integration successfully created content: application/json: schema: $ref: '#/components/schemas/one_of_integration_type' requestBody: required: true content: application/json: schema: discriminator: propertyName: vendor mapping: quickbooks: '#/components/schemas/post_integration_quickbooks' stripe: '#/components/schemas/post_integration_stripe' ondOf: - $ref: '#/components/schemas/IntegrationQuickBooksNewRequest' - $ref: '#/components/schemas/IntegrationStripeNewRequest' deprecated: false /integration/{integration_id}/: get: tags: - Integration summary: Get an integration by ID description: '' operationId: IntegrationByIntegrationId_GET parameters: - name: integration_id in: path description: the id of the integration to be retrieved required: true style: simple schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/one_of_integration_type' headers: {} deprecated: false put: tags: - Integration summary: Update an integration description: Each integration has unique requirements, so the schema will depend on the value of the existing integration's `vendor` parameter. operationId: IntegrationByIntegrationId_PUT parameters: - name: integration_id in: path description: '' required: true style: simple schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/one_of_integration_type' headers: {} requestBody: content: application/json: schema: oneOf: - $ref: '#/components/schemas/put_integration_quickbooks' - $ref: '#/components/schemas/put_integration_stripe' deprecated: false components: schemas: integration_stripe: title: Stripe Integration Schema type: object definitions: required_in_response: allOf: - $ref: '#/components/schemas/integration_base_definitions-required_in_response' - properties: vendor_config: $ref: '#/components/schemas/integration_stripe_vendor_config' allOf: - properties: vendor: type: string enum: - stripe vendor_display: type: string enum: - Stripe - properties: vendor_config: $ref: '#/components/schemas/integration_stripe_vendor_config' - $ref: '#/components/schemas/integration_base' put_integration_base: type: object additionalProperties: false properties: name: description: The display name of this cart. type: string archived_date: description: date of the integration to be archived type: string IntegrationStripeNewRequest: $ref: '#/components/schemas/post_integration_stripe' IntegrationQuickBooksNewRequest: $ref: '#/components/schemas/post_integration_quickbooks' one_of_integration_type: oneOf: - $ref: '#/components/schemas/integration_quickbooks-2' - $ref: '#/components/schemas/integration_stripe-2' integration_stripe_vendor_config: type: object properties: stripe_user_id: type: string refresh_token: type: string required: - stripe_user_id - refresh_token post_integration_base: type: object additionalProperties: false properties: name: description: A unique name for the integration type: string vendor: description: The type of integration. type: string enum: - quickbooks required: - vendor type: title: type enum: - financial - payment type: string integration_stripe_definitions-required_in_response: allOf: - $ref: '#/components/schemas/integration_base_definitions-required_in_response' - properties: vendor_config: $ref: '#/components/schemas/integration_stripe_vendor_config' integration_quickbooks_vendor_config: type: object properties: access_token: type: string access_token_expiration: type: string refresh_token: type: string realm_id: type: string refresh_token_expiration: type: string required: - access_token - access_token_expiration - refresh_token - refresh_token_expiration - realm_id integration_quickbooks_definitions-required_in_response: allOf: - $ref: '#/components/schemas/integration_base_definitions-required_in_response' - properties: vendor_config: $ref: '#/components/schemas/integration_quickbooks_vendor_config' integration_list: type: object title: Integration list schema properties: limit: type: integer offset: type: integer count: type: integer integration: type: array items: $ref: '#/components/schemas/any_of_integration_type' required: - limit - offset - count - order put_integration_stripe: title: Update Stripe Integration type: object additionalProperties: false allOf: - $ref: '#/components/schemas/put_integration_base' - $ref: '#/components/schemas/integration_stripe_vendor_config' post_integration_quickbooks: title: QuickBooks Integration type: object additionalProperties: false allOf: - $ref: '#/components/schemas/post_integration_base' - $ref: '#/components/schemas/integration_quickbooks_vendor_config' integration_base_definitions-required_in_response: required: - name - _link - vendor - vendor_display - id - archived_date - vendor_config post_integration_stripe: title: Stripe Integration type: object additionalProperties: false allOf: - $ref: '#/components/schemas/post_integration_base' - $ref: '#/components/schemas/integration_stripe_vendor_config' integration_stripe-2: title: Stripe Integration allOf: - $ref: '#/components/schemas/integration_stripe' - $ref: '#/components/schemas/integration_stripe_definitions-required_in_response' any_of_integration_type: anyOf: - $ref: '#/components/schemas/integration_quickbooks-2' - $ref: '#/components/schemas/integration_stripe-2' integration_quickbooks-2: title: QuickBooks Integration allOf: - $ref: '#/components/schemas/integration_quickbooks' - $ref: '#/components/schemas/integration_quickbooks_definitions-required_in_response' vendor: title: vendor enum: - quickbooks - stripe type: string integration_quickbooks: title: QuickBooks Integration Schema type: object definitions: required_in_response: allOf: - $ref: '#/components/schemas/integration_base_definitions-required_in_response' - properties: vendor_config: $ref: '#/components/schemas/integration_quickbooks_vendor_config' allOf: - properties: vendor: type: string enum: - quickbooks vendor_display: type: string enum: - QuickBooks - properties: vendor_config: $ref: '#/components/schemas/integration_quickbooks_vendor_config' - $ref: '#/components/schemas/integration_base' put_integration_quickbooks: title: Update QuickBooks Integration type: object additionalProperties: false allOf: - $ref: '#/components/schemas/put_integration_base' - $ref: '#/components/schemas/integration_quickbooks_vendor_config' integration_base: title: Integration Base Schema type: object definitions: required_in_response: required: - name - _link - vendor - vendor_display - id - archived_date - vendor_config properties: _link: type: string description: A relative link to this integration name: type: string description: The name of the integration vendor: type: string description: Short name of the vendor. enum: - quickbooks - stripe vendor_display: type: string description: The corresponding display name of the `vendor` property. enum: - QuickBooks - Stripe id: type: integer description: The identifier used as the main reference to this integration. archived_date: description: If this integration has been archived, this will contain the datetime that the integration was archived. Otherwise it will be null. anyOf: - type: string - type: 'null' vendor_config: type: object description: Vendor-specific configuration information. parameters: searchParam: name: search in: query description: '' schema: type: string limitParam: in: query name: limit required: false schema: type: integer minimum: 1 maximum: 100 default: 10 offsetParam: in: query name: offset required: false description: '' schema: type: integer default: 0 minimum: 0