Skip to content
This is a new version of the Kivra Developer Docs. Report issues or share feedback at avsandare.support@kivra.se. The previous version can be found here.

Create or link store to chain

POST
/dr/v1/stores
curl --request POST \
--url https://sender.sandbox-api.kivra.com/dr/v1/stores \
--header 'Content-Type: application/json' \
--data '{ "external_id": "ex000001", "name": "Demo store", "vat": "SE012345678989", "owner_id": "1593602546268ce6ece6cf49969f52f8a724e6f1f5", "address": { "street1": "Gatan 1", "postalcode": "13254", "city": "onebuying", "country": "SWE" }, "icon": { "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=", "content_type": "image/png" }, "logo": { "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=", "content_type": "image/png" } }'

Creates a store or link to an existing store using this endpoint.

Access scope

  • PARTNER
  • CHAIN

Using external ID

If external ID is provided in the body a new store is created using the external ID. If the external id already exists an error is returned.

Without external ID (Deprecated)

If external ID is not provided we determine if this is an existing store based on the following fields

  • name
  • vat
  • owner_id

It is possible to create multiple stores with the same VAT, however they all need to belong to the same owner (chain).

Takes in a store object with required information to create a new store

Media typeapplication/json
AddStore
object
external_id

ID provided by the POS that is unique per chain

string
name
required

The name of the store

string
>= 1 characters
vat
required

The VAT number of the store

string
/^((SE)?[0-9]{12})$"/
owner_id
required

ID of the owner company (chain)

string
/^([a-z0-9]{42})$/
phone

The phone number of the store

string
address

The address of the store

object
street1
required
string
street2
string
street3
string
postalcode
required
string
city
string
state
string
country
required
string
>= 3 characters <= 3 characters
icon

Icon displayed on the receipt

object
data
required

Base64 encoded image

string
content_type
required

The image content type

string
logo

Logo displayed on the receipt

object
data
required

Base64 encoded image

string
content_type
required

The image content type

string
Example
{
"external_id": "ex000001",
"name": "Demo store",
"vat": "SE012345678989",
"owner_id": "1593602546268ce6ece6cf49969f52f8a724e6f1f5",
"address": {
"street1": "Gatan 1",
"postalcode": "13254",
"city": "onebuying",
"country": "SWE"
},
"icon": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",
"content_type": "image/png"
},
"logo": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",
"content_type": "image/png"
}
}

Store already exists

Media typeapplication/json
AddStoreResponse
object
store_id
string
vat
string
external_id
string
created
boolean
Example
{
"store_id": "15594097555922f97bfeb148d6b9a6ef76f76ebdce",
"vat": "SE012345678989",
"created": false
}

Store successfully created

Media typeapplication/json
AddStoreResponse
object
store_id
string
vat
string
external_id
string
created
boolean
Example
{
"store_id": "15594097555922f97bfeb148d6b9a6ef76f76ebdce",
"vat": "SE012345678989",
"external_id": "ex000001",
"created": true
}

Bad request

Media typeapplication/json
ErrorResponse
object
error_code
string
short_message
string
long_message
string
error_detail
Array<string>
Examples
{
"error_code": "40000",
"short_message": "bad request",
"long_message": "body is missing required fields or has invalid fields"
}

Unauthorized

Media typeapplication/json
ErrorResponse
object
error_code
string
short_message
string
long_message
string
error_detail
Array<string>
Examples
Exampleunauthorized
{
"error_code": "40100",
"short_message": "unauthorized",
"long_message": "permission denied"
}

Not found

Media typeapplication/json
ErrorResponse
object
error_code
string
short_message
string
long_message
string
error_detail
Array<string>
Examples
Exampleresource_not_found
{
"error_code": "40400",
"short_message": "not found",
"long_message": "the requested resource could not be found"
}

Conflict

Media typeapplication/json
ErrorResponse
object
error_code
string
short_message
string
long_message
string
error_detail
Array<string>
Examples
Examplevat_exists
{
"error_code": "40900",
"short_message": "conflict",
"long_message": "company with the given vat exists"
}

Internal server error

Media typeapplication/json
ErrorResponse
object
error_code
string
short_message
string
long_message
string
error_detail
Array<string>
Example
{
"error_code": "50000",
"short_message": "internal server error",
"long_message": "unknown error ocurred"
}