lib/swagger/vendor-gw-taxnexus.yaml

721 lines
19 KiB
YAML

swagger: "2.0"
host: "vendor-gw.fabric.tnxs.net:8080"
securityDefinitions:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
security:
- ApiKeyAuth: []
basePath: "/v1"
schemes:
- "http"
info:
version: 1.3.0
title: "vendor-gw"
contact:
email: "noc@taxnexus.net"
license:
name: "Proprietary - Copyright (c) 2018-2021 by Taxnexus, Inc."
termsOfService: "https://www.taxnexus.com/terms/"
description: |
# Taxnexus Vendor Gateway
consumes:
- "application/json"
produces:
- "application/json"
parameters:
itemNumberPath:
description: The Item Number
in: path
name: item
required: true
type: string
itemNumberQuery:
description: The Item Number
in: query
name: item
required: false
type: string
lastModifiedEndQuery:
description: The last modified end timestamp
in: query
name: endDate
required: false
type: string
lastModifiedStartQuery:
description: The last modified start timestamp
in: query
name: startDate
required: false
type: string
licenseNumberQuery:
description: The Licnese Number for the query
in: query
name: license
required: false
type: string
limitQuery:
description: "How many objects to return at one time"
format: int64
in: query
name: limit
required: false
type: integer
nameQuery:
description: The Name of the Object
in: query
name: name
required: false
type: string
offsetQuery:
description: How many objects to skip
format: int64
in: query
name: offset
required: false
type: integer
partnerKeyQuery:
description: The Partner Key
in: query
name: partner
required: false
type: string
poIdQuery:
description: The ID Purchase Order to be retrieved
in: query
name: poId
required: false
type: string
stateCodeQuery:
description: The 2-character State Code
in: query
name: state
required: true
type: string
taxnexusUserQuery:
description: Taxnexus User Account Number (T0000001)
in: query
name: user
required: true
type: string
userKeyQuery:
description: The Taxnexus User's Key on the Vendor API
in: query
name: user
required: true
type: string
vendorQuery:
description: The name of the Vendor Gateway to be used
enum:
- blaze
- metrc
in: query
name: vendor
required: false
type: string
responses:
AccessForbidden:
description: Access forbidden, account lacks access
schema:
$ref: "#/definitions/Error"
Conflict:
description: Conflict
schema:
$ref: "#/definitions/Error"
InvalidDataError:
description: Invalid data was sent
schema:
$ref: "#/definitions/InvalidError"
InvoiceResponse:
description: An array of Invoice (full) objects
schema:
$ref: "#/definitions/InvoiceResponse"
AccountResponse:
description: An array of AccountBasic objects
schema:
$ref: "#/definitions/AccountResponse"
NotFound:
description: Resource was not found
schema:
$ref: "#/definitions/Error"
PurchaseOrderResponse:
description: An array of Purchase Order objects
schema:
$ref: "#/definitions/PurchaseOrderResponse"
ServerError:
description: Server Internal Error
schema:
$ref: "#/definitions/Error"
Unauthorized:
description: Access unauthorized, invalid API-KEY was used
schema:
$ref: "#/definitions/Error"
UnprocessableEntity:
description: Unprocessable Entity, likely a bad parameter
schema:
$ref: "#/definitions/Error"
paths:
/accounts:
get:
tags:
- Accounts
operationId: getAccounts
description:
Get the Stores, Accounts or other entities that correspond to
locations
parameters:
- $ref: "#/parameters/licenseNumberQuery"
- $ref: "#/parameters/partnerKeyQuery"
- $ref: "#/parameters/stateCodeQuery"
- $ref: "#/parameters/userKeyQuery"
- $ref: "#/parameters/vendorQuery"
responses:
"200":
$ref: "#/responses/AccountResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
summary: Get Accounts for this User
/invoices:
get:
summary: Get a list of Invoices
operationId: getInvoices
description: Return a list of available Taxnexus Invoices
tags:
- Invoices
parameters:
- $ref: "#/parameters/itemNumberQuery"
- $ref: "#/parameters/lastModifiedEndQuery"
- $ref: "#/parameters/lastModifiedStartQuery"
- $ref: "#/parameters/licenseNumberQuery"
- $ref: "#/parameters/limitQuery"
- $ref: "#/parameters/offsetQuery"
- $ref: "#/parameters/partnerKeyQuery"
- $ref: "#/parameters/stateCodeQuery"
- $ref: "#/parameters/userKeyQuery"
- $ref: "#/parameters/vendorQuery"
responses:
"200":
description:
A list of Invoices for this User was retrieved successfully
schema:
$ref: "#/definitions/InvoiceResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
/pos:
get:
summary: Get a list of Purchase Orders
operationId: getPos
description: Return a list of available Purchase Orders
tags:
- PurchaseOrders
parameters:
- $ref: "#/parameters/lastModifiedEndQuery"
- $ref: "#/parameters/lastModifiedStartQuery"
- $ref: "#/parameters/licenseNumberQuery"
- $ref: "#/parameters/limitQuery"
- $ref: "#/parameters/offsetQuery"
- $ref: "#/parameters/partnerKeyQuery"
- $ref: "#/parameters/poIdQuery"
- $ref: "#/parameters/stateCodeQuery"
- $ref: "#/parameters/userKeyQuery"
- $ref: "#/parameters/vendorQuery"
responses:
"200":
$ref: "#/responses/PurchaseOrderResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
definitions:
AccountBasic:
properties:
AccountNumber:
description: Account Number
type: string
BillingAddress:
$ref: "#/definitions/Address"
BillingContact:
$ref: "#/definitions/ContactBasic"
ID:
description: Taxnexus Record Id Only; not used in POST
type: string
License:
$ref: "#/definitions/LicenseBasic"
Name:
description: Account Name
type: string
ParentFK:
description:
UUID Reference the master record that owns this item
type: string
Phone:
description: Phone number
type: string
Ref:
description: "Source System identifier for this record, if any"
type: string
ShippingAddress:
$ref: "#/definitions/Address"
ShippingContact:
$ref: "#/definitions/ContactBasic"
Type:
description: Account Type
type: string
UUID:
description: Unique Taxnexus ID
type: string
Website:
description: Account Website
type: string
type: object
AccountResponse:
properties:
data:
items:
$ref: "#/definitions/AccountBasic"
type: array
meta:
$ref: "#/definitions/ResponseMeta"
type: object
Address:
properties:
City:
description: City
type: string
Country:
description: Country full name
type: string
CountryCode:
description: Country Code
type: string
Postalcode:
description: Postal Code
type: string
State:
description: State full name
type: string
StateCode:
description: State Code
type: string
Street:
description: Street number and name
type: string
type: object
ContactBasic:
properties:
AccountID:
description: Contact Account Id
type: string
Email:
description: Email
type: string
ID:
description: Taxnexus Record Id Only; not used in POST
type: string
MailingAddress:
$ref: "#/definitions/Address"
MobilePhone:
description: Mobile
type: string
Name:
description: Name
type: string
ParentFK:
description:
UUID Reference the master record that owns this item
type: string
Ref:
description: Source System identifier for this record, if any
type: string
UUID:
description: Unique Taxnexus ID
type: string
type: object
Error:
properties:
error:
type: string
status:
maximum: 600
minimum: 100
type: integer
type: object
InvalidError:
allOf:
- $ref: "#/definitions/Error"
- properties:
details:
items:
type: string
type: array
type: object
InvoiceBasic:
properties:
AccountID:
description:
Account Identifier from Source System; copied to the Tax
Transaction result records
type: string
AccountName:
description:
Account Name from source system (not used in tax calculations)
type: string
Amount:
description: Invoice Amount; ignored in tax calculation
format: double
type: number
AmountDue:
description: Amount Due; ignored in tax calculations
format: double
type: number
BusinessAddress:
$ref: "#/definitions/Address"
CustomerID:
description:
The Customer ID linked to this invoice from the source system
type: string
EstimatedAmount:
description: Invoice Total from source system
format: double
type: number
EstimatedCannabisTax:
description: Cannabis Tax from source system
format: double
type: number
EstimatedCOGS:
description: Cost of Goods Sold from source system
type: number
format: double
EstimatedDiscount:
description:
An amount the Invoice is discounted in source Invoice
format: double
type: number
EstimatedBusinessTax:
description: Business Tax from source system
format: double
type: number
EstimatedSalesTax:
description: Sales Tax from source system
format: double
type: number
EstimatedSubtotal:
description: Subtotal from source system
format: double
type: number
JobID:
description: Taxnexus Job ID
type: string
ID:
description: Taxnexus Record Id Only; not used in POST
type: string
InvoiceDate:
description:
Invoice Date; should be date only or correct time zone if in
time notation
type: string
InvoiceNumber:
description:
Source System Customer-Facing Invoice Number; ignored in tax
calculation
type: string
Items:
description: The items associated with this Invoice
items:
$ref: "#/definitions/ItemBasic"
type: array
ParentFK:
description:
UUID Reference to a master record that owns this item
type: string
Ref:
description:
Source System identifier for this record, if any; copied to
invoiceid in Tax Transaction result records
type: string
SalesRegulation:
description:
Sales Regulation Type; must be one of the listed values
type: string
ShippingHandling:
description:
The total amount of shipping and delivery charges on this
invoice from the source system
format: double
type: number
Status:
description:
Status used by for Billing Balances; ignored in tax
calculation
type: string
Subtotal:
description: Subtotal (not used in tax calculation)
format: double
type: number
Type:
description: Invoice Type (not used in tax calculation)
type: string
UUID:
description: Unique Taxnexus Id assigned during ingest
type: string
type: object
InvoiceResponse:
properties:
data:
items:
$ref: "#/definitions/InvoiceBasic"
type: array
meta:
$ref: "#/definitions/ResponseMeta"
type: object
ItemBasic:
properties:
COGS:
description: Cost of Goods Sold for this Item
example: 0
type: number
Description:
description: Line Item Description (not used in tax calculation)
example: string
type: string
ID:
description: Taxnexus Record Id Only; not used in POST
example: string
type: string
InvoiceID:
description: Source System Parent Foreign Key to Invoice
example: string
type: string
ListPrice:
description: The pre-discount price of the item
example: 0
type: number
MRCInterval:
description: The pre-discount price of the item
example: 0
format: int64
type: number
ParentFK:
description:
UUID Reference the master record that owns this item
example: string
type: string
ProductCode:
description: Product Code (not used in tax calculation)
example: string
type: string
Quantity:
description: Quantity
example: 0
type: number
Ref:
description:
"Source System identifier for this record, if any; copied to
invoiceitemid in Tax Transaction result records"
example: string
type: string
SalesRegulation:
description: Sales Regulation Type
example: string
type: string
ShippingHandling:
description: Shipping & Handling and Delivery Fees for this Item
example: 0
type: number
Subtotal:
description: Subtotal (not used in tax calculation)
example: 0
type: number
TaxnexusCode:
description: Taxnexus Code
example: string
type: string
UnitPrice:
description: Unit Price
example: 0
type: number
Units:
description: The Unit of Measure for this item
type: string
UUID:
description: Unique Taxnexus ID
example: string
type: string
type: object
LicenseBasic:
properties:
DateIssued:
description: Date Issued
type: string
ExpirationDate:
description: Expiration Date
type: string
ID:
description: Taxnexus Record Id
type: string
IsCanceled:
description: Is Canceled?
type: boolean
IsRevoked:
description: Is Revoked?
type: boolean
LicenseType:
description: License State and Type
type: string
Name:
description: License Number
type: string
ParentFK:
description:
UUID Reference the master record that owns this item
type: string
Ref:
description: Source System identifier for this record, if any
type: string
Status:
description: License Status
type: string
UUID:
description: Unique Taxnexus ID
type: string
type: object
Pagination:
properties:
next_link:
type: string
p_limit:
format: int64
type: integer
p_offset:
format: int64
type: integer
page_size:
format: int64
type: integer
set_size:
format: int64
type: integer
type: object
PurchaseOrderBasic:
properties:
AccountID:
description: Account ID
type: string
Amount:
description: Purchase Order Amount
format: float64
type: number
AmountDue:
description: Amount Due
type: number
BusinessAddress:
$ref: "#/definitions/Address"
ID:
description: Order Id
type: string
Items:
items:
$ref: "#/definitions/ItemBasic"
type: array
ParentFK:
description:
UUID Reference the master record that owns this item
type: string
PODate:
description: Purcahse Order Date
type: string
PONumber:
description: Purchase Order Number
type: string
Ref:
description: Source System identifier for this record, if any
type: string
SalesRegulation:
description: Sales Regulation Type
type: string
Status:
description: Status
type: string
Subtotal:
description: Subtotal
format: float64
type: number
Type:
description: Type
type: string
UUID:
description: Unique Taxnexus ID
type: string
type: object
PurchaseOrderResponse:
properties:
data:
items:
$ref: "#/definitions/PurchaseOrderBasic"
type: array
meta:
$ref: "#/definitions/ResponseMeta"
type: object
ResponseMeta:
properties:
Contact:
description: Microservice Contact Info
type: string
Copyright:
description: Copyright Info
type: string
License:
description: License Information and Restrictions
type: string
OperationID:
description: Operation ID
type: string
Pagination:
$ref: "#/definitions/Pagination"
RequestIP:
description: Request IP Address
type: string
RequestType:
description: Request Type
type: string
RequestURL:
description: Request URL
type: string
ServerInfo:
description: Data Server Info
type: string
ServerResponseTime:
description: Data Server Response Time (ms)
type: string
ServerTimeStamp:
description: Backend Server Timestamp
type: string
TaxnexusAccount:
description:
Taxnexus Account Number used for recording transactions
type: string
type: object