openapi: 3.0.3 info: version: '1.0' title: Company authorization suppliers API description: The Bokio Company API containing all resources for company tenant. termsOfService: https://docs.bokio.se/page/terms/ contact: name: Bokio url: https://docs.bokio.se email: support@bokio.se servers: - url: https://api.bokio.se/v1 description: Bokio API x-bokio-api: true security: - tokenAuth: [] tags: - name: suppliers description: Operations for managing suppliers paths: /companies/{companyId}/suppliers: parameters: - name: companyId in: path required: true description: Unique identifier of the company schema: type: string format: uuid example: ea9ee4dd-fae3-4aec-a7db-6fc9cc1f8135 post: tags: - suppliers summary: '[Preview] Create a supplier' description: 'Creates a new supplier for the company. **Scope:** `suppliers:write` ' operationId: post-supplier requestBody: description: Post the necessary fields for the API to create a supplier. content: application/json: schema: $ref: '#/components/schemas/supplier' examples: New supplier: value: name: Supplier ABC orgNumber: 556677-8899 vatNumber: SE123456789001 address: line1: Älvsborgsvägen 10 line2: c/o Test city: Gothenburg postalCode: 123 45 country: SE paymentDetails: type: bankgiro bankgiroNumber: 1234-5678 responses: '200': description: Supplier created content: application/json: schema: $ref: '#/components/schemas/supplier' examples: Supplier created: value: id: 12345678-abcd-1234-abcd-1234567890ab name: Supplier ABC orgNumber: 556677-8899 vatNumber: SE123456789001 currency: SEK address: line1: Älvsborgsvägen 10 line2: c/o Test city: Gothenburg postalCode: 123 45 country: SE paymentDetails: type: bankgiro bankgiroNumber: 1234-5678 '400': description: Missing required information content: application/json: schema: $ref: '#/components/schemas/apiError' examples: Error: value: code: validation-error message: Validation failed with 1 error bokioErrorId: 9b408943-7a1e-47ac-85a7-ac52b2c210d3 errors: - field: '#/name' message: The name field is required security: - tokenAuth: [] get: tags: - suppliers summary: '[Preview] Get suppliers' description: 'Get all suppliers for the company. Use the query parameters to filter and navigate through the results. **Scope:** `suppliers:read` ' operationId: get-suppliers parameters: - name: page in: query required: false description: Page number schema: type: integer format: int32 default: 1 - name: pageSize in: query required: false description: Number of items per page schema: type: integer format: int32 default: 25 maximum: 100 - name: query in: query required: false description: 'Optional query to filter the data set with supported fields listed below and [available operations](filtering). | Field | Type | | -------------------- | ----------- | | name | string | | vatNumber | string | | orgNumber | string | ' schema: type: string example: name==Supplier ABC responses: '200': description: Suppliers found content: application/json: schema: allOf: - $ref: '#/components/schemas/pagedResponse' - type: object properties: items: type: array items: $ref: '#/components/schemas/supplier' security: - tokenAuth: [] /companies/{companyId}/suppliers/{supplierId}: parameters: - name: companyId in: path required: true description: Unique identifier of the company schema: type: string format: uuid example: ea9ee4dd-fae3-4aec-a7db-6fc9cc1f8135 - name: supplierId in: path required: true description: Unique identifier of the supplier schema: type: string format: uuid example: 12345678-abcd-1234-abcd-1234567890ab get: tags: - suppliers summary: '[Preview] Get a supplier' description: 'Retrieve the information of the supplier with the matching supplierId. **Scope:** `suppliers:read` ' operationId: get-supplier-by-id responses: '200': description: Supplier found content: application/json: schema: $ref: '#/components/schemas/supplier' examples: Supplier found: value: id: 12345678-abcd-1234-abcd-1234567890ab name: Example Supplier orgNumber: 556677-8899 vatNumber: SE123456789001 currency: SEK address: line1: Älvsborgsvägen 10 line2: c/o Test city: Gothenburg postalCode: 123 45 country: SE paymentDetails: type: bankgiro bankgiroNumber: 5174-8895 '404': description: Supplier not found content: application/json: schema: $ref: '#/components/schemas/apiError' examples: Error: value: code: not-found message: Supplier not found bokioErrorId: 9b408943-7a1e-47ac-85a7-ac52b2c210d3 security: - tokenAuth: [] put: tags: - suppliers summary: '[Preview] Update a supplier' description: 'Update an existing supplier for the company. **Scope:** `suppliers:write` ' operationId: put-supplier requestBody: description: Post the necessary fields for the API to update a supplier. content: application/json: schema: $ref: '#/components/schemas/supplier' examples: Update supplier: value: name: Updated Supplier ABC orgNumber: 556677-8899 vatNumber: SE123456789001 currency: SEK address: line1: Älvsborgsvägen 10 line2: c/o Test city: Gothenburg postalCode: 123 45 country: SE paymentDetails: type: internationalPayment iban: SE1234567890123456789012 bic: SWEDSESS responses: '200': description: Supplier updated content: application/json: schema: $ref: '#/components/schemas/supplier' examples: Supplier updated: value: id: 12345678-abcd-1234-abcd-1234567890ab name: Updated Supplier ABC orgNumber: 556677-8899 vatNumber: SE123456789001 currency: SEK address: line1: Älvsborgsvägen 10 line2: c/o Test city: Gothenburg postalCode: 123 45 country: SE paymentDetails: type: internationalPayment iban: SE1234567890123456789012 bic: SWEDSESS '400': description: Missing required information content: application/json: schema: $ref: '#/components/schemas/apiError' examples: Error: value: code: validation-error message: Validation failed with 1 error bokioErrorId: 9b408943-7a1e-47ac-85a7-ac52b2c210d3 errors: - field: '#/name' message: The name field is required '404': description: Supplier not found content: application/json: schema: $ref: '#/components/schemas/apiError' examples: Error: value: code: not-found message: Supplier not found bokioErrorId: 9b408943-7a1e-47ac-85a7-ac52b2c210d3 security: - tokenAuth: [] delete: tags: - suppliers summary: '[Preview] Delete a supplier' description: 'Delete an existing supplier for the company. NOTE: Currently only supports deleting suppliers that have been added through the API. **Scope:** `suppliers:write` ' operationId: delete-supplier responses: '204': description: Supplier deleted '400': description: Operation not allowed content: application/json: schema: $ref: '#/components/schemas/apiError' examples: Not created by integration: value: code: operation-not-allowed message: Bokio API only supports deleting suppliers that have been added through the API by the same integration. bokioErrorId: 9b408943-7a1e-47ac-85a7-ac52b2c210d3 Supplier has active invoices: value: code: operation-not-allowed message: Cannot delete supplier with active invoices. bokioErrorId: 9b408943-7a1e-47ac-85a7-ac52b2c210d3 security: - tokenAuth: [] components: schemas: apiError: type: object title: apiError properties: code: type: string message: type: string bokioErrorId: type: string format: uuid errors: type: array items: type: object properties: field: type: string message: type: string bankgiroPaymentDetails: type: object title: bankgiroPaymentDetails required: - type - bankgiroNumber properties: type: type: string enum: - bankgiro bankgiroNumber: type: string description: The bankgiro number for the supplier example: type: bankgiro bankgiroNumber: 1234-5678 pagedResponse: type: object title: pagedResponse properties: totalItems: type: integer format: int32 example: 1 totalPages: type: integer format: int32 example: 1 currentPage: type: integer format: int32 example: 1 transferPaymentDetails: type: object title: transferPaymentDetails required: - type - clearingNumber - accountNumber properties: type: type: string enum: - transfer clearingNumber: type: string description: Bank clearing number accountNumber: type: string description: Bank account number example: type: transfer clearingNumber: '1234' accountNumber: '1234567890' internationalPaymentDetails: type: object title: internationalPaymentDetails required: - type - iban - bic properties: type: type: string enum: - internationalPayment iban: type: string description: International Bank Account Number bic: type: string description: Bank Identifier Code (SWIFT code) example: type: internationalPayment iban: SE1234567890123456789012 bic: SWEDSESS plusgiroPaymentDetails: type: object title: plusgiroPaymentDetails required: - type - plusgiroNumber properties: type: type: string enum: - plusgiro plusgiroNumber: type: string description: The plusgiro number for the supplier example: type: plusgiro plusgiroNumber: 12345-6 supplier: type: object title: supplier required: - name properties: id: type: string format: uuid readOnly: true name: type: string orgNumber: type: string vatNumber: type: string currency: type: string description: 'ISO 4217 currency code. Defaults to SEK if not provided. Sets the currency for the supplier, which determines the currency used when creating supplier invoices. When a non-SEK currency is set, exchange rates are automatically calculated to determine the correct SEK amount — no manual exchange rate lookup is needed. Allowed values depend on whether the company has a Bokio Business Account (BBA): **With Bokio Business Account:** `SEK`, `EUR`, `NOK`, `USD`, `DKK`, `GBP`, `PLN`, `RON`, `CZK`, `HUF`, `ISK`, `CHF` Note: For companies with a Bokio Business Account, only currencies supported by BBA are available. For supplier invoices that cannot be paid via BBA, the currency must be set to `SEK` and exchange rates must be handled manually. **Without Bokio Business Account:** `SEK`, `GBP`, `EUR`, `USD`, `NOK`, `DKK`, `AUD`, `BRL`, `CAD`, `CHF`, `CNY`, `CZK`, `HKD`, `HUF`, `IDR`, `INR`, `ISK`, `JPY`, `KRW`, `MAD`, `MXN`, `NZD`, `PLN`, `RUB`, `SAR`, `SGD`, `THB`, `TRY`, `ZAR` ' default: SEK address: $ref: '#/components/schemas/supplierAddress' paymentDetails: $ref: '#/components/schemas/paymentDetails' example: id: 12345678-abcd-1234-abcd-1234567890ab name: Example Supplier orgNumber: 556677-8899 vatNumber: SE123456789001 currency: SEK address: line1: Älvsborgsvägen 10 line2: c/o Test city: Gothenburg postalCode: 123 45 country: SE paymentDetails: type: bankgiro bankgiroNumber: 1234-5678 paymentDetails: type: object title: paymentDetails required: - type discriminator: propertyName: type mapping: bankgiro: '#/components/schemas/bankgiroPaymentDetails' plusgiro: '#/components/schemas/plusgiroPaymentDetails' transfer: '#/components/schemas/transferPaymentDetails' internationalPayment: '#/components/schemas/internationalPaymentDetails' oneOf: - $ref: '#/components/schemas/bankgiroPaymentDetails' - $ref: '#/components/schemas/plusgiroPaymentDetails' - $ref: '#/components/schemas/transferPaymentDetails' - $ref: '#/components/schemas/internationalPaymentDetails' supplierAddress: type: object title: supplierAddress properties: line1: type: string line2: type: string nullable: true city: type: string postalCode: type: string country: description: ISO 3166-1 alpha-2 country code. Defaults to SE if not provided. type: string format: country default: SE example: line1: Älvsborgsvägen 10 line2: c/o Test city: Gothenburg postalCode: 123 45 country: SE securitySchemes: tokenAuth: type: http scheme: bearer access_token: type: oauth2 flows: clientCredentials: tokenUrl: /token scopes: {} authorizationCode: authorizationUrl: /authorize tokenUrl: /token scopes: bank-payments:read-limited: Read access to bank payments created by the integration bank-payments:write: Write access to bank payments chart-of-accounts:read: Read access to chart of accounts company-information:read: Read access to company information credit-notes:read: Read access to credit notes credit-notes:write: Write access to credit notes customers:read: Read access to customers customers:write: Write access to customers fiscal-years:read: Read access to fiscal years invoices:read: Read access to invoices invoices:write: Write access to invoices items:read: Read access to items items:write: Write access to items journal-entries:read: Read access to journal entries journal-entries:write: Write access to journal entries sie:read: Read access to SIE files supplier-invoices:read: Read access to supplier invoices supplier-invoices:write: Write access to supplier invoices suppliers:read: Read access to suppliers suppliers:write: Write access to suppliers tags:read: Read access to tag groups and tags tags:write: Write access to tag groups and tags uploads:read: Read access to uploads uploads:write: Write access to uploads client_auth: type: http scheme: basic externalDocs: url: https://docs.bokio.se description: Read the API Documentation x-readme: explorer-enabled: true proxy-enabled: false samples-languages: - shell - http - node - csharp - java