Vendors (v1)

https://github.com/folio-org/mod-vendors

Table of contents

EDIs

CRUD APIs used to manage EDIs.

/vendor-storage/edis

Collection of edi items.

GET /vendor-storage/edis

Get list of EDIs

GET /vendor-storage/edis
Query Parameters
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    with valid searchable fields: for example code

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    ["code", "MEDGRANT", "="]
    
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of edi items

Body

Media type: application/json

Type: json

Content:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "collection of EDI records",
    "type": "object",
    "properties": {
      "edis": {
        "description": "The list of EDIs in this collection",
        "type": "array",
        "id": "edis",
        "items": {
          "type": "object",
          "$ref": "edi.json"
        }
      },
      "total_records": {
        "description": "The number of vendor records returned in this collection",
        "type": "integer"
      },
      "first": {
        "description": "The index of the first object in the collection",
        "type": "integer"
      },
      "last": {
        "description": "The index of the last object in the collection",
        "type": "integer"
      }
    },
    "additionalProperties": false,
    "required": [
      "edis",
      "total_records"
    ]
  }
  

Example:

{
    "edis": [
        {
            "id": "08e0eb27-b57f-4638-a703-9a2c57bd8708",
            "vendor_edi_code": "AQ-GOBI-HIST",
            "vendor_edi_type": "014/EAN",
            "lib_edi_code": "MY-LIB-1",
            "lib_edi_type": "014/EAN",
            "prorate_tax": true,
            "prorate_fees": true,
            "edi_naming_convention": "",
            "send_acct_num": true,
            "support_order": true,
            "support_invoice": true,
            "notes": "",
                "edi_ftp": {
                "ftp_format": "SFTP",
                "server_address": "http://127.0.0.1",
                "username": "edi_username",
                "password": "edi_password",
                "ftp_mode": "ASCII",
                "ftp_conn_mode": "Active",
                "ftp_port": "22",
                "order_directory": "/path/to/order/directory",
                "invoice_directory": "/path/to/invoice/directory",
                "notes": "My FTP notes"
            },
            "edi_job": {
                "schedule_edi": false,
                "date": null,
                "time": null,
                "is_monday": false,
                "is_tuesday": false,
                "is_wednesday": false,
                "is_thursday": false,
                "is_friday": false,
                "is_saturday": false,
                "is_sunday": false,
                "send_to_emails": "email1@site.com, email2@site.com",
                "notify_all_edi": true,
                "notify_invoice_only": true,
                "notify_error_only": false
            }
        }
    ],
    "total_records": 1,
    "first": 1,
    "last": 1
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list edis -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list edis -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /vendor-storage/edis

Create a new edi item.

POST /vendor-storage/edis
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A vendor EDI record",
  "type": "object",
  "properties": {
    "id": {
      "description": "The unique id of this category",
      "type": ["string", "null"],
      "description": "UUID",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
    },
    "vendor_edi_code": {
      "description": "The vendor code for this EDI",
      "type": "string"
    },
    "vendor_edi_type": {
      "description": "The vendor type for this EDI",
      "type": "string"
    },
    "lib_edi_code": {
      "description": "The library code for this EDI",
      "type": "string"
    },
    "lib_edi_type": {
      "description": "The library type for this EDI",
      "type": "string"
    },
    "prorate_tax": {
      "description": "The setting to prorate tax for this EDI",
      "type": "boolean"
    },
    "prorate_fees": {
      "description": "The setting to prorate fees for this EDI",
      "type": "boolean"
    },
    "edi_naming_convention": {
      "description": "The naming convention for this EDI",
      "type": "string"
    },
    "send_acct_num": {
      "description": "The setting to send the account number for this EDI",
      "type": "boolean"
    },
    "support_order": {
      "description": "The setting to support order for this EDI",
      "type": "boolean"
    },
    "support_invoice": {
      "description": "The setting to support invoice for this EDI",
      "type": "boolean"
    },
    "notes": {
      "description": "The notes for this EDI",
      "type": "string"
    },
    "edi_ftp": {
      "description": "The FTP object for this EDI",
      "type": "object",
      "$ref": "edi_ftp.json"
    },
    "edi_job": {
      "description": "The job object for this EDI",
      "type": "object",
      "$ref": "edi_job.json"
    }
  },
  "additionalProperties": false
}

Example:

{
    "vendor_edi_code": "AQ-GOBI-HIST",
    "vendor_edi_type": "014/EAN",
    "lib_edi_code": "MY-LIB-1",
    "lib_edi_type": "014/EAN",
    "prorate_tax": true,
    "prorate_fees": true,
    "edi_naming_convention": "",
    "send_acct_num": true,
    "support_order": true,
    "support_invoice": true,
    "notes": "",
    "edi_ftp": {
        "ftp_format": "SFTP",
        "server_address": "http://127.0.0.1",
        "username": "edi_username",
        "password": "edi_password",
        "ftp_mode": "ASCII",
        "ftp_conn_mode": "Active",
        "ftp_port": "22",
        "order_directory": "/path/to/order/directory",
        "invoice_directory": "/path/to/invoice/directory",
        "notes": "My FTP notes"
    },
    "edi_job": {
        "schedule_edi": false,
        "date": null,
        "time": null,
        "is_monday": false,
        "is_tuesday": false,
        "is_wednesday": false,
        "is_thursday": false,
        "is_friday": false,
        "is_saturday": false,
        "is_sunday": false,
        "send_to_emails": "email1@site.com, email2@site.com",
        "notify_all_edi": true,
        "notify_invoice_only": true,
        "notify_error_only": false
    }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created edi item

Body

Media type: application/json

Type: any

Example:

{
    "vendor_edi_code": "AQ-GOBI-HIST",
    "vendor_edi_type": "014/EAN",
    "lib_edi_code": "MY-LIB-1",
    "lib_edi_type": "014/EAN",
    "prorate_tax": true,
    "prorate_fees": true,
    "edi_naming_convention": "",
    "send_acct_num": true,
    "support_order": true,
    "support_invoice": true,
    "notes": "",
    "edi_ftp": {
        "ftp_format": "SFTP",
        "server_address": "http://127.0.0.1",
        "username": "edi_username",
        "password": "edi_password",
        "ftp_mode": "ASCII",
        "ftp_conn_mode": "Active",
        "ftp_port": "22",
        "order_directory": "/path/to/order/directory",
        "invoice_directory": "/path/to/invoice/directory",
        "notes": "My FTP notes"
    },
    "edi_job": {
        "schedule_edi": false,
        "date": null,
        "time": null,
        "is_monday": false,
        "is_tuesday": false,
        "is_wednesday": false,
        "is_thursday": false,
        "is_friday": false,
        "is_saturday": false,
        "is_sunday": false,
        "send_to_emails": "email1@site.com, email2@site.com",
        "notify_all_edi": true,
        "notify_invoice_only": true,
        "notify_error_only": false
    }
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add edi -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create edis -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /vendor-storage/edis/{id}

Retrieve edi item with given {ediId}

GET /vendor-storage/edis/{id}
URI Parameters
  • id: required (string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$)

    The UUID of a Alert

Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A vendor EDI record",
  "type": "object",
  "properties": {
    "id": {
      "description": "The unique id of this category",
      "type": ["string", "null"],
      "description": "UUID",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
    },
    "vendor_edi_code": {
      "description": "The vendor code for this EDI",
      "type": "string"
    },
    "vendor_edi_type": {
      "description": "The vendor type for this EDI",
      "type": "string"
    },
    "lib_edi_code": {
      "description": "The library code for this EDI",
      "type": "string"
    },
    "lib_edi_type": {
      "description": "The library type for this EDI",
      "type": "string"
    },
    "prorate_tax": {
      "description": "The setting to prorate tax for this EDI",
      "type": "boolean"
    },
    "prorate_fees": {
      "description": "The setting to prorate fees for this EDI",
      "type": "boolean"
    },
    "edi_naming_convention": {
      "description": "The naming convention for this EDI",
      "type": "string"
    },
    "send_acct_num": {
      "description": "The setting to send the account number for this EDI",
      "type": "boolean"
    },
    "support_order": {
      "description": "The setting to support order for this EDI",
      "type": "boolean"
    },
    "support_invoice": {
      "description": "The setting to support invoice for this EDI",
      "type": "boolean"
    },
    "notes": {
      "description": "The notes for this EDI",
      "type": "string"
    },
    "edi_ftp": {
      "description": "The FTP object for this EDI",
      "type": "object",
      "$ref": "edi_ftp.json"
    },
    "edi_job": {
      "description": "The job object for this EDI",
      "type": "object",
      "$ref": "edi_job.json"
    }
  },
  "additionalProperties": false
}

Example:

{
    "id": "08e0eb27-b57f-4638-a703-9a2c57bd8708",
    "vendor_edi_code": "AQ-GOBI-HIST",
    "vendor_edi_type": "014/EAN",
    "lib_edi_code": "MY-LIB-1",
    "lib_edi_type": "014/EAN",
    "prorate_tax": true,
    "prorate_fees": true,
    "edi_naming_convention": "",
    "send_acct_num": true,
    "support_order": true,
    "support_invoice": true,
    "notes": "",
    "edi_ftp": {
        "ftp_format": "SFTP",
        "server_address": "http://127.0.0.1",
        "username": "edi_username",
        "password": "edi_password",
        "ftp_mode": "ASCII",
        "ftp_conn_mode": "Active",
        "ftp_port": "22",
        "order_directory": "/path/to/order/directory",
        "invoice_directory": "/path/to/invoice/directory",
        "notes": "My FTP notes"
    },
    "edi_job": {
        "schedule_edi": false,
        "date": null,
        "time": null,
        "is_monday": false,
        "is_tuesday": false,
        "is_wednesday": false,
        "is_thursday": false,
        "is_friday": false,
        "is_saturday": false,
        "is_sunday": false,
        "send_to_emails": "email1@site.com, email2@site.com",
        "notify_all_edi": true,
        "notify_invoice_only": true,
        "notify_error_only": false
    }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"edi not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /vendor-storage/edis/{id}

Delete edi item with given {ediId}

DELETE /vendor-storage/edis/{id}
URI Parameters
  • id: required (string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$)

    The UUID of a Alert

Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete edi -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"edi not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

PUT /vendor-storage/edis/{id}

Update edi item with given {ediId}

PUT /vendor-storage/edis/{id}
URI Parameters
  • id: required (string - pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$)

    The UUID of a Alert

Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A vendor EDI record",
  "type": "object",
  "properties": {
    "id": {
      "description": "The unique id of this category",
      "type": ["string", "null"],
      "description": "UUID",
      "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
    },
    "vendor_edi_code": {
      "description": "The vendor code for this EDI",
      "type": "string"
    },
    "vendor_edi_type": {
      "description": "The vendor type for this EDI",
      "type": "string"
    },
    "lib_edi_code": {
      "description": "The library code for this EDI",
      "type": "string"
    },
    "lib_edi_type": {
      "description": "The library type for this EDI",
      "type": "string"
    },
    "prorate_tax": {
      "description": "The setting to prorate tax for this EDI",
      "type": "boolean"
    },
    "prorate_fees": {
      "description": "The setting to prorate fees for this EDI",
      "type": "boolean"
    },
    "edi_naming_convention": {
      "description": "The naming convention for this EDI",
      "type": "string"
    },
    "send_acct_num": {
      "description": "The setting to send the account number for this EDI",
      "type": "boolean"
    },
    "support_order": {
      "description": "The setting to support order for this EDI",
      "type": "boolean"
    },
    "support_invoice": {
      "description": "The setting to support invoice for this EDI",
      "type": "boolean"
    },
    "notes": {
      "description": "The notes for this EDI",
      "type": "string"
    },
    "edi_ftp": {
      "description": "The FTP object for this EDI",
      "type": "object",
      "$ref": "edi_ftp.json"
    },
    "edi_job": {
      "description": "The job object for this EDI",
      "type": "object",
      "$ref": "edi_job.json"
    }
  },
  "additionalProperties": false
}

Example:

{
    "id": "08e0eb27-b57f-4638-a703-9a2c57bd8708",
    "vendor_edi_code": "AQ-GOBI-HIST",
    "vendor_edi_type": "014/EAN",
    "lib_edi_code": "MY-LIB-1",
    "lib_edi_type": "014/EAN",
    "prorate_tax": true,
    "prorate_fees": true,
    "edi_naming_convention": "",
    "send_acct_num": true,
    "support_order": true,
    "support_invoice": true,
    "notes": "",
    "edi_ftp": {
        "ftp_format": "SFTP",
        "server_address": "http://127.0.0.1",
        "username": "edi_username",
        "password": "edi_password",
        "ftp_mode": "ASCII",
        "ftp_conn_mode": "Active",
        "ftp_port": "22",
        "order_directory": "/path/to/order/directory",
        "invoice_directory": "/path/to/invoice/directory",
        "notes": "My FTP notes"
    },
    "edi_job": {
        "schedule_edi": false,
        "date": null,
        "time": null,
        "is_monday": false,
        "is_tuesday": false,
        "is_wednesday": false,
        "is_thursday": false,
        "is_friday": false,
        "is_saturday": false,
        "is_sunday": false,
        "send_to_emails": "email1@site.com, email2@site.com",
        "notify_all_edi": true,
        "notify_invoice_only": true,
        "notify_error_only": false
    }
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update edi -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"edi not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator