Hosted Window

You need to POST the outgoing params to: from the merchants checkout page to a secure web page hosted at mondido that you can design the way you want to by using the default template or your customized page using your favourite CSS and JS frameworks.

After a payment is done the customer will be redirected to either a success_url or a error_url (callback pages) where you can finalize or cancel the order in your backend. You can also send your own custom data in these callback URLs such as: The params can also use Liquid to fetch custom values from the payment.

Page character encoding

You should use UTF8 as encoding on your form page to ensure proper values

Params to send

amount decimal * required

The transaction amount ex. 12.00, NOTE: must always include two decimals.

vat_amount decimal

The vat amount for the transaction ex. 3.00

merchant_id string * required

Your unique id. Can be found in the admin console.

currency string * required

Payment currency (sek, cad, cny, cop, czk, dkk, hkd, huf, isk, inr, ils, jpy, kes, krw, kwd, lvl, myr, mxn, mad, omr, nzd, nok, pab, qar, rub, sar, sgd, zar, chf, thb, ttd, aed, gbp, usd, twd, vef, ron, try, eur, uah, pln, brl)

customer_ref string

A unique customer/user ID from the merchant system. Used to identify a customer in different transactions and for stored cards.

payment_ref string * required

A unique order ID from the merchant internal order/payment data (length 1-12)

hash string * required

success_url string * required

A URL to the page where the user is redirected after a successful transaction. Can contain Liquid.

error_url string * required

A URL to the page where the user is redirected after a unsuccessful transaction. Can contain Liquid.

metadata string

Your own custom data for example:

<input type="hidden" name="metadata" value="{'user_name':'john doe','email':'','shoe_size':'42'}">

test boolean

Sets the transaction to be live or in test mode. test = true, only allows test card numbers, test = false, only allow real card numbers.

store_card boolean

true/false if you want to store the card for token based transactions.

template_id integer

An ID of a Hosted Window Template on Mondido. If this param is sent, the filter function is not used.

webhook object

You can specify a custom Webhook for a transaction. For example sending e-mail or POST to your backend.

plan_id integer

A ID of a subscription plan in Mondido. The plans are defined in the Admin console.


A number that says how many times the cost of the subscription plan that should processed. This could be used as a licence factor when the plan cost A amount and the customer want to subscribe to A * the number of licenses (the multiplier) for each period.

authorize integer

authorize = true info: "means that the transaction should be reserved (Authorized).

items Array of items objects * required if payment_method is invoice

You can specify items for a transaction.

payment_details object * required if payment_method is invoice

You can specify Payment details for a transaction.

payment_method String * required if payment_method is invoice


subscription_items object

An array of subscription unique items

segmentation String * required if invoice is of type business to business (b2b)

You can specify segmentation type by sending b2b or b2c.

update_token String

You can update a tokenized payment method by sending in the old token

Example HTML

Where is this form located?

This HTML form should be located in your checkout page as the last step in the order process, before the payment.

<form action="" method="post">
  <input type="hidden" name="payment_ref" value="123">
  <input type="hidden" name="customer_ref" value="123">
  <input type="hidden" name="amount" value="100.00">
  <input type="hidden" name="currency" value="sek">
  <input type="hidden" name="hash" value="9q837iuwydkwie7yi7">
  <input type="text" name="merchant_id" value="1">
  <input type="text" name="success_url" value="">
  <input type="text" name="error_url" value="">
  <input type="hidden" name="test" value="true">
  <input type="text" name="metadata" value='{"products":[{"id":"1","name":"Nice Shoe","price":"100.00","qty":"1","url":""}],"user":{"email":""}}'>
  <input type="submit" value="Pay" class="btn">

Params you'll get back

In the callback URL you will get back the data you need to update your order data and connect the transaction to your order. The data you get is: transcation_id (generated from mondido), payment_ref (merchant order id), hash, token (if the card is stored you will get this to make future transactions), and your own custom params in the callback URL.


transaction_id int

ID of transaction from Mondido

payment_ref string

The merchant order/payment ID

hash string

A security token; MD5(merchant id + payment_ref + customer_ref + amount + currency + status + secret)

error_name string

A description of the error if the transaction failed

status string

approved, authorized, declined, pending, failed

token string

A unique string that you can use to make API transaction if the card is stored

stored_card_id int

If card is stored this value will be the ID you use to make API requests on the the stored card. *

subscription_id int

If a subscription is created this value will be the ID you use to make API requests on the the subscription. *

* Important when storing a card/subscribing to a plan

In some cases the card can not be stored, but we will still try to charge it. This means that the transaction might be successful even though the card can not be stored.

Always check the response to see if there is a stored_card id (or subscription_id), which will be missing if the card could not be stored.

The hash is validated by doing this:

MD5(merchant id + payment_ref + customer_ref + amount + currency + status + secret)

currency and status must be lower case:

Else the MD5 check will fail

Compare the calculated hash with the hash value sent in the URL to see that it matches.


Metadata is custom schemaless information that you can choose to send in to Mondido. It can be information about the customer, the product or about campaigns or offers.

The metadata can be used to customize your hosted payment window or sending personalized receipts to your customers in a webhook.

Example of metadata:

    "name":"Nice Shoe",

The values like products, 1, name, are optional and can be named freely by the merchant. These will be shown in the transaction lists so you can analyze transactions based on metadata and get a comprehensive understanding of your sales.

Why Metadata?

One of the most important benefits of using Mondido is the power of the data that you can send with the payment. The more data you send in the more parameters you have to create custom payment flows and analyze transaction data to see what are your best selling items, services and products.

Popular parameters are:
  • Order information (price, vat, categories, materials, tags)
  • Platform specs (iPhone/Android, OS version, screen size, locale)
  • Application specs (version number, tokens, sessions)
  • Customer information (location, language)

All sent in data can be visualized in your dashboard in graphs or charts so that you easy can follow up and analyze your sales. Mondido understands that making relevant and important business decisions starts with knowing your customers habits, likes and preferences. Incorporating metadata into the payment gives you the best chance to optimize your checkout, A/B test and bring intelligence into your business.

Updating the transaction with shop order ID

By using the API, you can update the Metadata property of an already processed transaction by passing metadata and process = false.

The submitted data will be merged with existing Metadata for that transaction.

By sending, for example: {"shop_order": {"id": "123123"}} as Metadata to the update method, you can connect your internal shop order ID to the Mondido admin view.

Liquid and Metadata

Liquid is an open-source, Ruby-based template language created by Shopify. It is a well-known framework and is used to load dynamic content on storefronts.

Liquid uses a combination of tags, objects, and filters to load dynamic content. They are used inside the Mondido Hosted Window Payment Form to display information from the payment data and make the template dynamic for each customer, product or transaction.

The official documentation can be found here:

You can output information in your metadata to your Hosted Windows Form or in a Receipt Webhook using Liquid syntax. Using the example above, this is the way to output it:

Product name: {{ transaction.metadata['products'] }}
Product quantity: {{ transaction.metadata['products'].first.qty }}

To loop all products:

{%for item in transaction.metadata['products']%}
  Name: {{ item['name'] }},
  Price: {{ item['price'] }} {{transaction.amount | upcase }},
  Quantity {{ item['qty'] }}
{% endfor %}

Payment Form

When you POST to a Hosted Window the customer will end up in a Payment Form at Mondido where you can design using your own HTML/JS/CSS code. When you sign up as a merchant you can log in to the admin system and go to the page where you handle the payment forms for your merchant account (

You can also GET a Hosted Window payment form for an existing payment that has not been finished using the HREF attribute on the transaction.

The payment form will show the customers input fields where they can enter credit card information as well as information about the order such as amount and currency.

Where is this Payment Form located?

This form is in the hosted page located in the Mondido admin pages and NOT on your website.

You will get templates for this that you can modify to suit your own needs.

The important fields you need to have are:
<input type="text" name="card_holder" placeholder="Firstname Lastname"/>
<input type="text" name="card_number" placeholder="Card Number"/>
<input type="text" name="card_type" placeholder="VISA / MASTERCARD">
<input type="text" name="card_cvv" placeholder="XXX"/>
<input type="text" name="card_expiry" placeholder="YYMM"/>
Optional: If you want to store the card for token based transactions
<input type="hidden" name="store_card" value="true"/>

A possible solution would also be to have store_card as a checkbox so the customer can choose to store the card for future purchases.

When subscribing to a subscription plan

If you want to add a subscription plan to the payment you will need to add a plan_id to the form. The plans are defined in the admin console.

<input type="hidden" name="plan_id" value="1"/>
A full example of a payment form:

Note that all external files should be served from a HTTPS url in order to not be blocked in some browsers. All parameters you send in can also be outputted in the HTML code such as: {{ amount }} {{ currency }}

You can find a full example of a payment form at

You can find the payment form repository at

Liquid Syntax

Liquid is an open-source, Ruby-based template language created by Shopify. It is a well-known framework and is used to load dynamic content on storefronts.

Liquid uses a combination of tags, objects, and filters to load dynamic content. They are used inside the Mondido Hosted Window Payment Form to display information from the payment data and make the template dynamic for each customer or product.

The official documentation can be found here:

Any information sent in to a Mondido Hosted Window Payment can be displayed in the Liquid tag format and can be displayed like this:

{{ transaction.amount }}
{{ transaction.currency }}

All properties available in the Hosted Window are:

Used for Hosted Window and Webhooks Recommeded Usage: Most commonly used in Custom Payment templates and receipt emails.

{{ transaction.amount }} int

Ex 10.00

{{ transaction.currency }} string


{{ transaction.payment_ref }} string

Your order reference

{{ transaction.metadata }} string

Your metadata accessible like: {{ transaction.metadata['products'][0]['name'] }}

{{ transaction.created_at }} datetime

Ex: 2014-04-25T10:20:48Z (UTC)

{{ }} int

Ex: 1231

{{ transaction.test }} string

bool: 'test'

{{ transaction.success_url }} string


{{ transaction.error_url }} string


{{ }} string

Ex: MyWebShop

{{ transaction.client_info['browser'] }} string

From user agent, ex: Chrome

{{ transaction.client_info['version'] }} string

From user agent, ex: 39.0.2171.95

{{ transaction.client_info['platform'] }} string

From user agent, ex: Macintosh

{{ transaction.client_info['ip'] }} string

From user agent, ex:

{{ transaction.client_info['accept_language'] }} string

From user agent, ex: en-US,en;q=0.8,sv;q=0.6

{{ transaction.transaction_type }} string

Type of payment, ex: Bank or Credit card

{{ transaction.request_hash }} string

The hash that was sent in by the merchant

{{ transaction.response_hash }} string

The hash that was sent to the merchant by Mondido

{{ transaction.link_payment }} bool

true/false if transaction was made by a payment link

{{ transaction.cost }} object

The cost of transaction {"percentual_fee":0,"fixed_fee":0,"percentual_exchange_fee":0,"total":"0.0", "vat_rate": 0.25}

Subscription liquid syntax is ideal for returning information about the newly purchased or trialed service.

{{ }} int

Ex: 14

{{ subscription.plan }} object

Ex: Monthly Premium Subscription

{{ subscription.status }} string

Active Subscription

{{ subscription.price }} decimal

Ex: 100.00

{{ subscription.interval_unit }} string

days / months

{{ subscription.interval }} int

Ex: 30 (days)

{{ subscription.total_periods }} int

Ex: 12 (months)

{{ subscription.period_count }} int

Ex: 5

{{ subscription.created_at }} datetime

Ex: 2014-04-25T10:36:33Z (UTC)

{{ subscription.updated_at }} datetime

Ex: 2014-04-25T10:37:33Z (UTC)

{{ subscription.next_at }} datetime

Ex: 2014-04-25T10:37:33Z (UTC)

{{ subscription.customer }} object

Customer that is connected to the transaction

{{ subscription.periods_left }} int

Number of transactions before the subscription ends.

{{ subscription.metadata }} object

Merchant specific Metadata

{{ subscription.debt }} decimal

A positive value if you want to add an amount for the next transaction, or negative if you want to subtract an amount

{{ subscription.multiplier }} string

How many times you want to withdraw the amount. For example in a licence scenario

{{ subscription.retry_count }} int

How many times the subscription has failed. This is zeroed after a successful transaction.

Usual information that goes with a subscription, stored card liquid syntax is great for upselling on services or attaching a previous customer to a card for better conversion of second time buyers.

{{ }} int

The ID of the stored card

{{ stored_card.ref }} string

Ex: 14

{{ stored_card.merchant }} int

he merchant ID

{{ stored_card.created_at }} datetime

Ex: 2014-04-25T10:20:48Z (UTC)

{{ stored_card.updated_at }} datetime

Ex: 2014-04-25T10:37:33Z (UTC)

{{ stored_card.expires }} datetime

Ex: 2014-04-25T10:37:33Z (UTC)

{{ stored_card.card_type }} string


{{ stored_card.currency }} string


{{ stored_card.customer }} object

Customer that is connected to the transaction

{{ stored_card.card_number }} string

The masked version of the credit card number.

{{ stored_card.status }} string

Ex: active, cancelled

{{ stored_card.card_holder }} string

The name on the charged credit card

{{ stored_card.test }} bool

Wether or not the stored_card is a test card

A new feature allowing the tracking of information beyond the normal card content.

{{ }} int

Id of the transaction.

{{ payment_details.type }} string

Ex: Credit Card/stored card/recurring)

{{ payment_details.card_number }} string

A masked card number ex. 411111****1111

{{ payment_details.card_holder }} string

Id of the transaction.

{{ payment_details.card_type }} string


{{ payment_details.created_at }} datetime

Ex. 2014-04-25T10:20:48Z (UTC)

{{ payment_details.updated_at }} string

Ex. 2014-04-25T10:20:48Z (UTC)

{{ payment_details.customer_number }} string

Customer that is connected to the transaction

{{ payment_details.first_name }} string

Ex: Robert

{{ payment_details.last_name }} string

Ex: Pohl

{{ }} int

Ex: 17070

{{ payment_details.country_code }} string

Ex: SE, US

{{ payment_details.address }} string

Ex: 123 Main Street

{{ }} string

Ex: San Francisco

{{ paymentdetail.personal_number }} string

Ex: 195603041111

{{ payment_details.mask_first_name }} string

Ex: Robert

{{ payment_details.mask_last_name }} string

Ex: O*******

{{ payment_details.mask_zip }} string

Ex: 170**

{{ payment_details.mask_address_1 }} string

**öjel Stora Hajdes 7**

{{ payment_details.mask_address_2 }} string

**öjel Stora Hajdes 7**

{{ payment_details.mask_city }} string


Best used for businesses that are Sass based or sell their product on a service basis.

{{ }} int

Ex: 10

{{ plan.prices }} object

Price for each subscription transaction


{{ plan.interval_unit }} string

days / months

{{ plan.interval }} int

Ex. 1 month

{{ plan.periods }} int

Ex: 0 = forever, 1 = 1 period

{{ plan.setup_fees }} object

Starts costs of a plan


{{ }} string

Ex: Name of Plan

{{ plan.description }} string

Description of Plan

{{ plan.trial_length }} int

Amount of days before the first transaction. 0 = no trial.

{{ plan.merchant }} int

Id of merchant account

{{ plan.created_at }} datetime

Ex: 2014-04-25T10:20:48Z (UTC)

{{ plan.updated_at }} string

Ex: 2014-04-25T10:20:48Z (UTC)

{{ plan.status }} string

active, cancelled

Best to put {{ }} if your retreiving the merchant name through the transaction object.

{{ }} string

Ex: My Webshop

{{ merchant.plans }} array

Ex: List of subscription plans

{{ refund.amount }} decimal

Ex: 100.00

{{ refund.reason }} string

The reason for refunding the card holder

Go here to learn about how to parse and display your Metadata

Link Payment

The Links Payment provides a simple method for suggesting payments by sharing a simple URL. Every transaction that is not finished will have a HREF attribute which is a HTTP link that can be sent to customers using e-mail or instant messaging. The link is a useful tool to have customers complete an unfinished payment that was abandoned or one that the merchant has prepared earlier.

When a customer clicks on the link that looks like this:, they will end up in a Hosted Window form that is set up by the merchant and prepared with all the order details like amount, currency, metadata, webhooks etc. When the customer has finished the payment he/she will be redirected to the success_url that was used in the original POST that created the transaction earlier. The same goes with an unsuccessful payment where the customer will end up in the error_url.

To find the HREF url, the merchant will need to search in the Admin console to find the transaction and then expand the panel to find the url among all the other transaction data. Another option is to prepare the transaction in the API and and the get the HREF in the API call response and pass that link to the customer.

Payment With Stored Cards

When you POST to a Hosted Window the customer will end up in a Payment Form at Mondido which you can design using your own HTML/JS/CSS code. You will be able to both store the card and make payments with previous stored cards here as well.

We call it stored cards, but can either be a credit/debit card, direct debit bank payment or invoice.

To make payments with stored cards you need to send in the unique customer reference from your web site so that we can connect the stored card to that customer.

The important fields you need to have in your form are:

<input type="text" name="customer_ref" value="1234"/>

When customer_ref is posted to the hosted window Mondido will be able to handle cards connected to that user. We will inject a JavaScript object in the <head> tag, that you can access in the payment form after the POST.

Example of JavaScript object where the stored cards can be found:
  Mondido = {transaction: {"id":1028,"amount":"1.0","metadata":{"user":{"email":""},"products":["awesomeness","coolness"]},"customer":{"id":5,"ref":"133752","metadata":null,"stored_cards”:[{"card_number":"41111****1111",id":5,"token":"2w67r33303d23691","expires":"2014-05-31T23:59:59Z","card_type":"VISA","currency":"sek"}]}}};

Where can I find this Injected Mondido object?

In the hosted payment form we'll make it available for you to access. Iterate the properties using plain JavaScript.

How can a customer update a stored card?

If you have a stored payment method like card or bank direct debit, there might be useful to be able to update those stored payment details. Both Stored Cards and Subscriptions are based on tokenization of the underlying payment method, which then can be used to charge the customers.

When a stored payment method has expired or needs to be changed, you can create a change request by sending a update_token parameter to the Hosted Window. This can be done in a zero (0.00) amount transaction to only update a token and not process any charges.

If you append the variable update_token (with value stored_card.token) and keep_token (true/false) the payment window will collect new payment details and store those. If it's a Subscription, the new token will be attached and replace the expired token.

Please note:

When updating stored payment details, it's required that the the customer_ref is identical as the value used when creating the initial stored payment details. I.E it's the same user.

When updating a token you will get a new one, that will be connected to existing subscriptions, but if you use keep_token=true/false the token can be re-used for the new payment details. If your systems needs notifications regarding this, you can create a HTTP Webhook that can call your servers on the CARD_UPDATED event, with both the new and old token so it can be updated on your end.

Example, to create a new token for a Subscription:

Example, to update a token and keep the old token:

Payment With Subscriptions

When you POST to a Hosted Window the customer will end up in a Payment Form at Mondido which you can design using your own HTML/JS/CSS code. You will be able to both store the card and make payments with previous stored cards here as well. You can also create a subscription along with a payment or without a payment by setting the amount to zero (0.00)

To create a subscription through a Hosted Window, you first need to create a subscription plan that will dictate the conditions of the subscription. To create and manage plans you can go to the Admin Console and go to Plans in the left side menu. There you can set the price and recurring options, such as every month, xx days or the 2/:th every month.

Mondido will then run the recurring subscription job and charge your customers by these conditions. Trial periods, dynamic product items and other features are some of the features you can use.

The important fields you need to have in your form are:

<input type="text" name="plan_id" value="14"/>

When plan_id is posted to the hosted window Mondido will be able to store the payment method and start the recurring subscription job.

To update a subscription with a new payment method, see How can a customer update a stored card?


A webhook is a messaging service that is executed before or after a transaction. You can add one or more webhooks in the Admin console or specify a custom webhook for a transaction. The data that sent varies depending on the context, read more under triggers to see what data to expect.

id int

Webhook ID

created_at datetime

Ex. 2014-04-25T10:36:33Z (UTC)

type string

Webhook type, ex: CustomHttp

response object

The http response, ex: { "code":"400", "body":"Bad request (GET and HEAD requests may not contain a request body)", "message":"Bad Request", "error":"Net::HTTPBadRequest" }

http_method string

Which method that were used, ex. POST, GET

email string

Sender address in a e-mail Webhook

url string

URL in a Custom Http Webhook

trigger string

What event to trigger Webhook, ex. payment_error

data_format string

JSON, form_data or XML

Show Webhooks

To show a webhook with ID 1 you need to GET the following url

List Webhooks

To show a list of webhooks you need to GET the following url

Creating Webhooks in a transaction

Webhooks can either be created from a template in the Admin console, or custom attached to each transaction call from the merchant shop. When creating custom Webhooks you define it using JSON described in the examples below:

Sending E-mail:
Custom HTTP:
Or as an Array:
trigger can be:
  • recurring_error - (after unsuccessful recurring transaction)
  • recurring_success - (after successful recurring transaction)
  • refund_error - (after a failed refund)
  • capture - (after a successful capture)
  • payment_success - (after a successful transaction, data sent: a transaction object)
  • payment_error - (after a failed transaction, data sent: a transaction object)
  • payment_form - (when an hosted window is loaded, data sent: a transaction object)
  • payment - (after any transaction regardless of status, data sent: a transaction object)
  • refund - (after a refund, data sent: a transaction object)
  • subscription_started - (when a new subscription is created, data sent: a subscription object)
  • card_stored - (when a new card is stored, data sent: a stored_card object)
  • card_updated - (when a card is updated, data sent: a stored_card object)
  • webhook_exhausted - (when a Webhook didn't reach it's destination after retries, data sent: a webhook object)
  • change_address - (after a shipping address is changed, data sent: a transaction object)
  • none - (manual execution in the Mondido Rule Engine)
http_method can be:
  • post
  • get
  • put
  • patch
  • delete
data_format can be:
  • json
  • xml
  • form_data


Custom http webhooks will not follow redirects. Make sure to point them directly at your endpoint.

If you are using the https protocol, your SSL certificate must be valid for the webhook to work.

If the webhook encounters a "500 error" from your endpoint it will retry 20 times for approximately 2 days. If it doesn't succeed during this timeframe you will receive a warning in the dashboard. Any other error will create a notification in the dashboard immediately.

NOTE: When notifications are created in the dashboard you will also be receiving an alert email. Opt-out is possible by unchecking "Get Email Alerts" in Settings > Administrators.

file not found
//Fetching the incoming transaction data

$transaction = webhook::get($path);
// Fetches and parses the incoming transaction.
// This example is coming from a WebAPI Post action and uses the ControllerContext for data

var transaction = Webhook.GetWebhook(this.ControllerContext.Request);

Automatic job retry

Webhooks will retry failures up to 20 times, with an exponential backoff using the formula (retry_count ** 4) + 15 + (rand(30) * (retry_count + 1)) (i.e. 15, 16, 31, 96, 271, ... seconds + a random amount of time).

It will perform 20 retries over approximately 3 days. Assuming you deploy a bug fix within that time, the job will get retried and successfully processed. After 20 times, Webhooks will move that job to the Dead Job queue, and create a notification on the merchant dashboard.

Liquid and Receipt Webhooks

Liquid is an open-source, Ruby-based template language created by Shopify. It is a well-known framework and is used to load dynamic content on storefronts.

Liquid uses a combination of tags, objects, and filters to load dynamic content. They are used inside the Mondido Hosted Window Payment Form to display information from the payment data and make the template dynamic for each customer, product or transaction.

The official documentation can be found here:

You can output information in your receipt Webhook using Liquid syntax. Using the example above, this is the way to output it:

Product name: {{ transaction.metadata['products'] }}
Product quantity: {{ transaction.metadata['products'].first.qty }}  %p

To loop all products:
{%for item in transaction.metadata['products']%}
    Name: {{ item['name'] }},
    Price: {{ item['price'] }} {{transaction.amount | upcase }},
    Quantity {{ item['qty'] }}
{% endfor %}  %strong For Refunds

You can send a refund confirmation using the After Refund event with the Receipt webhook. There you can output the refunded amount like this:

Hi, here is your refund confirmation for order: {{ transaction.payment_ref }}
Amount: {{ transaction.refunds.last.amount }}
Reason: {{ transaction.refunds.last.reason }}


Items makes it possible to send product info about the items into a payment. This items array is required for invoice payments and can also be used in subscriptions to add additional product charges intop of the Plan amount.

This data is required if the transaction is of type invoice

artno string (maxlength 50) * required

Article number

description string (maxlength 150) * required

Description about the item

amount integer * required

The total price of all the items

qty string * required

The item quantity

vat string * required

VAT rate, ex 25 (No verification or or calculation is made)

discount string

Discount of the products (No verification or or calculation is made)


[{"artno": "001", "amount": 1, "description": "user license2", "qty": 1, "vat": 25, "discount": 0}]

Payment Details

Payment Details make it possible to send customer data. Payment data is perfect way to send specific infomation about a customer.

This data is required if the transaction is of type invoice

ssn string * required

Social Security number (Personnummer). Ex: 192803104351

phone string * required

Phone number

email string * required

Email adress

customer_number string (maxlength 150)

Your custumer number

first_name string (maxlength 150) * required

The first name of the custumer

last_name string (maxlength 150) * required

The last name of the custumer

zip string (maxlength 150) * required

ZIP code

address_1 string (maxlength 150) * required

Primary address

address_2 string (maxlength 150)

Secondary address

city string (maxlength 150) * required


country_code string * required

Use ISO 3166-1 alpha-3 codes, ex: SWE.

company_name string * required

Company name, for b2b

segmentation string * required

Segmentation, b2c or b2b

Test Cards

To create test transactions you need to send in a test card number, and also a CVV code that can simulate different responses

Test card numbers:
VISA 4111111111111111
VISA 4012888888881881
VISA 4222222222222
MASTERCARD 5555555555554444
MASTERCARD 5105105105105100
DINERS 30569309025904
DISCOVER 6011111111111117
JCB 3530111333300000
AMEX 378282246310005
Test CVV codes:

When in test mode (test=true) you can use CVV codes to simulate different responses. Anything else will lead to Approved.

Test Expiry dates:

When in test mode (test=true) you can use specific expiry dates to simulate failed recurring card payments

0137 errors.payment.declined
0237 errors.card.expired

Test customers

To create test invoice transactions you need to send in a test ssn number. Use different SSN numbers to simulate different responses.

Approved persons Sweden
195203198089 string

{"first_name": "Solbritt", "last_name": "Jansson", "address_1": "Danagatan 1", "address_2": nil, "city": "Trångsund", "zip_code": "14262", "country": "SWE", "ssn": "195203198089"}

192803037999 string

{"first_name": "Stig", "last_name": "Saleh", "address_1": "Lars Kaggsgatan 163 Lgh 1003", "address_2": nil, "city": "Oxie", "zip_code": "23831", "country": "SWE", "ssn": "192803037999"}

192803104351 string

{"first_name": "Erik", "last_name": "Nygren", "address_1": "Hablingbo Prästgården 151 Lgh 1203", "address_2": nil, "city": "Nynäshamn", "zip_code": "14931", "country": "SWE", "ssn": "192803104351"}

192803290853 string

{"first_name": "Erik", "last_name": "Karlsson", "address_1": "Sakrislundsvägen 45 Lgh 1001", "address_2": nil, "city": "Ytterby", "zip_code": "44205", "country": "SWE", "ssn": "192803290853"}

192805181332 string

{"first_name": "Jonas", "last_name": "Olivares", "address_1": "Fröjel Stora Hajdes 717", "address_2": nil, "city": "Spånga", "zip_code": "16345", "country": "SWE", "ssn": "192805181332"}

192806225351 string

{"first_name": "Gustaf", "last_name": "Roslin", "address_1": "Motalagatan 7 Lgh 1005", "address_2": nil, "city": "Linköping", "zip_code": "58254", "country": "SWE", "ssn": "192806225351"}

195202057674 string

{"first_name": #RANDOM#, "last_name": #RANDOM#, "address_1": #RANDOM#, "address_2": #RANDOM#, "city": #RANDOM#, "zip_code": #RANDOM#, "country": "SWE", "ssn": "195202057674"}

197003067985 string

{"first_name": #RANDOM#, "last_name": #RANDOM#, "address_1": #RANDOM#, "address_2": #RANDOM#, "city": #RANDOM#, "zip_code": #RANDOM#, "country": "SWE", "ssn": "197003067985"}

197108262366 string

{"first_name": #RANDOM#, "last_name": #RANDOM#, "address_1": #RANDOM#, "address_2": #RANDOM#, "city": #RANDOM#, "zip_code": #RANDOM#, "country": "SWE", "ssn": "197108262366"}

Denied persons Sweden
192806281719 string

{"first_name": "Kent", "last_name": "Ludwig", "address_1": "Vindögatan 4 Lgh 1502", "address_2": nil, "city": "Gärds Köpinge", "zip_code": "29197", "country": "SWE", "ssn": "192806281719"}

192808219691 string

{"first_name": "Alex John", "last_name": "Säll", "address_1": "Arkeologvägen 52", "address_2": nil, "city": "Skillingaryd", "zip_code": "56830", "country": "SWE", "ssn": "192808219691"}

192809162536 string

{"first_name": "Erik", "last_name": "Wadman", "address_1": "Myrängsvägen 73 Lgh 1410", "address_2": nil, "city": "Höllviken", "zip_code": "23638", "country": "SWE", "ssn": "192809162536"}

192901107488 string

{"first_name": "Kristina", "last_name": "Lindell", "address_1": "Östra Skolgatan 10", "address_2": nil, "city": "Ödeshög", "zip_code": "59979", "country": "SWE", "ssn": "192901107488"}

192901197497 string

{"first_name": "Gustaf", "last_name": "Gustafsson", "address_1": "Spireav 1", "address_2": nil, "city": "Stockholm", "zip_code": "11254", "country": "SWE", "ssn": "192901197497"}

195807065627 string

{"first_name": "Anne Malin", "last_name": "Samuelsson", "address_1": "Härsbackavägen 69 Lgh 1309", "address_2": nil, "city": "Karlstad", "zip_code": "65226", "country": "SWE", "ssn": "195807065627"}

Approved persons Norway
06073910828 string

{"first_name": "Tester", "last_name": "Person", "address_1": "Startveien 56", "address_2": null, "city": "FINNSNES", "zip_code": "9300", "country": "NOR", "ssn": "06073910828"}

Approved persons Finland
071259999M string

{"first_name": "Dmitri Jonatan", "last_name": "Casimirsson", "address_1": "Sepänkatu 11 A 1", "address_2": null, "city": "KUOPIO", "zip_code": "70100", "country": "FIN", "ssn": "071259999M"}

Invoice B2B test org numbers
  • 1079304893
  • 1818063073
  • 1277188676

Supported Card Types

Where are they used?

You need to POST the card type name as card_type parameter

Default card types that you will have access to are VISA and Mastercard, but the other such as AMEX, JCB and Diners are on separate contracts. Contact support for more information about card types.










Debit MasterCard


Visa Debit






American Express




UK Maestro




Ukash NEO




Stored Card

Accepted Currencies


Swedish Krona


Canadian Dollar


Chinese Yuan


Colombian Peso


Czech Republic Koruna


Danish Krone


Hong Kong Dollar


Hungarian Forint


Icelandic Króna


Indian Rupee


Israeli New Sheqel


Japanese Yen


Kenyan Shilling


South Korean Won


Kuwaiti Dinar


Latvian Lats


Malaysian Ringgit


Mexican Peso


Moroccan Dirham


Omani Rial


New Zealand Dollar


Norwegian Krone


Panamanian Balboa


Qatari Rial


Russian Ruble


Saudi Riyal


Singapore Dollar


South African Rand


Swiss Franc


Thai Baht


Trinidad and Tobago Dollar


United Arab Emirates Dirham


British Pound Sterling


US Dollar


New Taiwan Dollar


Venezuelan Bolívar


Romanian Leu


Turkish Lira




Ukrainian Hryvnia


Polish Zloty


Brazilian Real

Error messages

We aim to send as many insightful and helpful error messages to you as possible, both in numeric, data and human readable.

  name: 'errors.card_number.missing',
  code: 118,
  description: 'Card number is missing'

Simulate errors:

To simulate error messages send this json in your metadata. Use one of the following formats:

  "mondido_instructions": {
  "mondido_instructions": {
    "fail_as_message":"do not honour"

List of error messages:

1 errors.credit_card.missing

Credit card is missing.

2 errors.credit_card_details.missing

Credit card details are missing.

3 errors.terminal_id.invalid

Terminal ID is invalid.

4 errors.provider_ref.processed

Provider reference processed.

101 errors.order_id.processed

Order has already been processed.

102 errors.order_id.invalid

Order has already been processed.

103 errors.template.not_found

Could not find template.

104 errors.merchant.not_found

Could not find merchant.

105 errors.merchant_id.missing

Required parameter merchant_id is missing.

106 errors.hash.missing

Hash is missing.

107 errors.hash.invalid

Hash is invalid.

108 errors.amount.missing

Amount error – amount missing or negative.

109 errors.amount.invalid

Amount error – the amount of an item is missing, negative or zero.

1090 errors.amount.invalid_format

Amount error - amount format is invalid.

1091 errors.transaction.amount

The amount may exceed the total invoice amount, or the number of decimals has more than two digits after decimal (Can only have two digits after decimal).

110 errors.success_url.missing

Success URL is missing.

1100 errors.success_url.not_valid_uri

Is not a valid success URL.

1101 errors.error_url.not_valid_uri

Is not a valid error URL.

1102 errors.success_url.forbidden_uri

URL contains forbidden params.

1103 errors.error_url.forbidden_uri

URL contains forbidden params.

111 errors.success_url.reserved

Reserved parameter in success URL.

112 errors.error_url.missing

Success URL is missing.

113 errors.error_url.reserved

Reserved parameter in success URL.

115 errors.currency.invalid

Currency is invalid.

116 errors.currency.missing

Currency is missing.

117 errors.currency.unsupported

Currency is unsupported.

118 errors.card_number.missing

Card number is missing.

119 errors.card_number.invalid

Card number is invalid.

120 errors.card_type.missing

Card type is invalid.

121 errors.card_type.unsupported

Card type is unsupported.

122 errors.card_holder.missing

Card type is missing.

123 errors.card_holder.invalid

Card holder is invalid.

124 errors.card_cvv.missing

Card CVV is missing.

125 errors.card_cvv.invalid

Card CVV is invalid.

126 errors.card_expiry.missing

Card expiry is missing.

127 errors.card_expiry.invalid

Card expiry is invalid.

128 errors.transaction.not_found

Transaction could not be found.

1280 errors.transaction.timeout

This payment resource is expired.

129 errors.payment.declined

Payment is declined.

1290 errors.payment.failed

Payment is failed.

1290 errors.payment.canceled

Payment is canceled.

1292 errors.payment.amount_low

Amount value is too low.

130 errors.card.expired

Card is expired.

131 errors.card_currency.unsupported

Currency is not supported for card type.

132 errors.reason.missing

Reason is missing.

133 errors.unexpected

An unexpected error occurred.

134 errors.amount.excess

Amount is too much.

135 errors.plan.not_found

The Plan wasn't found.

1300 errors.plan.missing

Price is missing.

1301 errors.supported_card.not_found

Supported card could not be found.

1302 errors.card.do_not_honour

Card payment was declined by customers bank.

1303 errors.plan.invalid

Plan is invalid.

1304 errors.plan.deactivated

Plan is deactivated.

136 errors.price.missing

Price is missing.

137 errors.stored_card.not_found

Stored card not found.

138 errors.unauthorized


139 errors.merchant.missing

The merchant could not be find.

140 errors.transaction.missing

Transaction could not be found.

141 errors.subscription.not_found

Subscription not found.

142 errors.customer.not_found

Customer not found.

143 errors.customer.missing

Customer is missing.

144 errors.generic

Generic error.

145 errors.payment_ref.invalid

Payment_ref is invalid.

146 errors.payment_ref.processed

Payment_ref processed.

147 errors.file_type.unsupported

File type is not supported.

1470 errors.onboarding.failed_to_save

An error occurred while saving.

148 errors.status.invalid

Status must be active or cancelled.

149 errors.json.malformed

JSON is malformed.

150 errors.stored_card.not_active

Stored card not active.

151 errors.webhook.invalid

Invalid webhook data.

1510 errors.webhook_template.invalid

Webhook template is invalid.

1511 errors.webhook_template.not_found

Could not find webhook.

152 errors.transaction_id.missing

Transaction ID is missing.

153 errors.transaction.processed

Transaction is already processed.

1531 errors.transaction.locked

The Payment is being processed, please don’t make another payment at this time.

154 errors.invoice.not_purchable

An invoice can’t be found.

155 errors.reservation.not_approved

Reservation is not approved.

156 errors.personal_number.missing

Social Security number missing.

157 errors.customer_number.missing

Customer number is missing.


Zip code is missing or too long.

159 errors.first_name.missing

First name is missing or too long.

160 errors.last_name.missing

Last name is missing or too long.

161 errors.country_code.missing

Country code is missing or invalid.

162 errors.address.missing

Address is missing or too long


City is missing or too long

164 errors.payment_details.missing

Payment details is missing.

165 errors.customer_ref.invalid

Customer ref is not allowed.

1600 errors.company_name.missing

Company name is missing.

1601 errors.payment_details.invalid

Payment details is invalid

1602 errors.invitation.not_found

Invitation not found.

166 errors.items.missing

Missing items.

167 errors.stored_card.not_test

Stored card is not valid for test transactions.

168 errors.stored_card.is_test

Stored card is only valid for test transactions.

1680 errors.stored_card.recurring

Stored card is only for recurring transactions.

169 errors.mpi.not_approved

3D-Secure was not approve.

1690 errors.mpi.invalid

3D-Secure information is not valid.

1691 errors.mpi.disabled

MPI status disabled.

170 errors.subscription.status_invalid

Status must be active or cancelled.

1700 errors.subscription.paid

General error.

171 errors.customer_ref.taken

Customer ref already in use.

172 errors.item.amount.missing

Items are missing.

173 errors.item.quantity.missing

Item quantity is missing or not valid.

174 errors.item.vat_rate.missing

Item vat_rate is missing or not valid.

175 errors.item.vat_amount.missing

Item vat_amount is missing or not valid.


Item ID is missing.

177 errors.item.unit_code.missing

Item unit code is missing.

178 errors.item.price.missing

Item price is missing.

179 errors.item.line_number.missing

Item line number is missing.

180 errors.item.description.missing

Description error – the description of an item is missing or is too long.

181 errors.merchant.invoice.not_configured

Merchant invoice not configured.

182 errors.authentication.failed

Could not authorize the request, check your login credentials.

183 errors.raw_amount.invalid

Amount is invalid.


Name must be filled.

185 errors.interval_unit.missing

You need to submit unit for the interval.

186 errors.interval_unit.invalid

Interval_unit is invalid.

187 errors.prices.missing

Prices are missing.

188 errors.interval.missing

You need to submit an interval.

189 errors.interval.invalid

Interval is invalid.

190 errors.password.missing

Password is missing.


Email is missing.

192 errors.terms.not_accepted

Terms are not accepted.

193 errors.webhook.failed

Webhook is failed or invalid.

194 errors.encrypted_param.missing

Expected all parameters in encrypted to exist.

195 errors.prices.invalid

Prices needs to be valid json.

196 errors.not_found

General error.

197 errors.decryption.failed

Decryption failed.

198 errors.vat_amount.missing

VAT amount is missing.

199 errors.reason.too_long

Reason is too long (255 characters allowed).

200 errors.encoding.invalid

Strings has to be UTF8 encoded.


The name already exists.

202 errors.merchant.invalid

Merchant is invalid.

203 errors.amount.mismatch

Amount does not match.

204 errors.webhook.not_found

Could not find webhook.

205 errors.filter_parameter.not_supported

You provided an unsupported filter parameter.

206 errors.filter_value.not_supported

You provided an unsupported filter value.

207 errors.account.locked

Your account is temporarily locked. Please try again in 30 minutes. You can unlock by resetting the password, or contact

208 errors.deposit.not_captured

Deposit not captured.

2080 errors.trustly.deposit_not_captured

Deposit not captured.

2081 errors.trustly.mandate_not_found

Mandate not found.

2082 errors.trustly.account_not_found

Account not found.

2083 errors.trustly.account_declined

Account declined.

2084 errors.trustly.message_id_duplicate

Message id duplicate.

2085 errors.trustly.invalid_credentials

Credentials is invalid.

2086 errors.trustly.malformed_notificationurl

The NotificationURL sent in the request is malformed. It must be a valid http(s) address.

2087 errors.trustly.invalid_ip

The IP attribute sent is invalid. Only one IP address can be sent.

2088 errors.trustly.insufficient_funds

The merchant does not have enough balance on his/her Trustly account to execute the refund.

2089 errors.trustly.disabled_user

The user account is disabled.

209 errors.ssn_or_country.missing

The country is missing.

2090 errors.ssn_token.failed

SSN token failed.

2091 errors.metadata.invalid

Metadata is invalid.

211 errors.missing_or_invalid.ssn

SSN error – missing SSN or invalid format.

212 errors.missing_or_too_long.first_name

First Name error – missing first name or first name too long.

213 errors.missing_or_too_long.last_name

Last Name error – missing last name or last name too long.


E-mail error – invalid e-mail format.

215 errors.missing_or_invalid.phone_number

Cell phone number error – cell phone number missing or invalid characters.

216 errors.missing_or_too_long.address_1

Address line 1 error – missing address or address line 1 too long.

217 errors.missing.address_2

Address line 2 error – address line 2 too long.


City error – city is missing or value too long.

219 errors.missing_or_too_long.zip_code

Zip code error – zip code missing or value too long.

220 errors.missing_or_invalid.country_code

Country code error – missing or invalid country code.

221 errors.missing_or_invalid.amount_error

Amount error – missing amount or invalid value.

222 errors.too_long.transaction_id

Transaction id error – value is too long.

223 errors.must_be_submitted.ssn

SSN must be submitted.

224 errors.invoice.credit_approval_failed

Credit approval failed.

225 errors.invoice.credit_check

Credit check (SSN Not found).

226 errors.invoice.credit_not_approved

Credit not approved.

227 errors.invoice.amount.requested.lower_than_minimum_purchase_amount

Amount requested is lower than minimum purchase amount.

228 errors.invoice.amount.requested.higher_than_maximum_purchase_amount

Amount requested is higher than maximum purchase amount.

229 errors.invoice.amount.maximal_decimal

Amount value can have maximal {0} decimal places.

230 errors.item.missing_or_too_long.description

Item amount value can have maximal {0} decimal places.

2301 errors.item.missing_or_too_long.description

Description error – the description of an item is missing or is too long.

231 errors.item.total_amount_error

Total Amount error – the total amount of items must be higher than zero.

232 errors.item.notes_to_long

Notes error – notes for an item is too long.

233 errors.missing_or_too_long.order_reference

Order reference error – missing order reference or it is too long.

234 errors.invoice.account_error

Account class error – missing account class or invalid account class value.

235 errors.invoice.account_class_error

Account Class error - specified AccountNumber has a different AccountClass.

236 errors.order.reference.error

Order reference error – missing order reference or it is too long.

237 errors.invoice.credit_decision_process_failed

Credit decision process failed.

238 errors.helper.ssn.invalid_format

SSN error – invalid format.

239 errors.helper.ssn.must_be_submitted

SSN must be submitted.

240 errors.helper.ssn.for_sweden_must_be_12_digits

SSN for sweden must be 12 digits.

241 errors.helper.ssn.address_is_available

Not available – SSN is valid but no address is available.

242 errors.helper.ssn.have_a_value

Account Number or SSN must have a value.

243 errors.service_not_available

Service not available for the specified country.

244 errors.invoice.no_account_exists

No account exists – use Approve Invoice/Loan first.

245 errors.invoice.purchase_for_different_country

You are trying to make purchase for different country.

246 errors.invoice.payment_terms_error

Payment Terms error – specified payment terms code does not exist.

247 errors.invoice.account_number_error

Account number error – invalid value.

248 errors.invoice.account_was_overdrawn

Max. amount for the account was overdrawn.

249 errors.invoice.execute.against.this.account

Cannot execute return against this accoun.

250 errors.password_length

Password length must be at least 6 chars.

251 errors.customer_not_found

Customer not found! Probably reason - Customer with SSN = {0} is not client of {1}.

252 errors.request.json_error

API request error.

253 errors.request.bad_format

Bad format of request data. For example, the data is not in valid JSON format.

2502 errors.items.vat_missing

Item vat is missing or not valid.

2503 errors.items.artno_missing

Item artno is missing.

2511 errors.items.qty_missing

Item quantity is missing or not valid.

2512 errors.items.notes_too_long

Items notes are too long.

254 errors.items.not_array

Items is not an array.

255 errors.items.description_missing

Item description is missing.

256 errors.items.notes_missing

Items notes is missing.

257 errors.items.amount_missing

Amount is missing.

258 errors.items.description_too_long

Items description is too long.

259 errors.items.amount_not_valid

Items amount is not valid.

260 errors.items.transaction_amount_mismatch

Items total amounts does not match transaction amount.

261 errors.rules_parser.declined

Declined by rule engine.

2610 errors.rules_parser.skip_webhook

Rule parsers are skipped.

262 errors.request.json_errors

Something is wrong with the JSON object.

263 errors.invoice.denied_to_purchase

Customers are blocked for purchases by Collector, please contact Collector for more information.

264 errors.invoice.credit_check_denied

The credit check is not approved.

265 errors.invoice.address_not_found

Address can’t be found for the specified customer.

266 errors.invoice.reservation_not_approved

Reservation is not approved.

267 errors.invoice.invalid_registration_number

When the is not in a correct format.

268 errors.invoice.agreement_rules_validation_failed

Something with the use of the API is against the agreement with Collector, please contact Collector for information.

269 errors.invoice.unhandled_exception

If an unhandled error occurs, an unhandled exception will be thrown. In cases of these errors contact Collector for help.

270 errors.invoice.purchase_amount_greater_than_max_credit_amount

The total amount of an invoice or reservation can’t be greater than your maximum credit limit or the maximum credit limit for the country the purchase is made in.

271 errors.invoice.activation_of_invoice_denied

Activation of an invoice is denied.

274 errors.invoice.article_not_found

An Article can’t be found. Both Article Id and description specified must be the same that was used during AddInvoice. If more than one article with the same article id but different unit price is added to the invoice, the unit price of the article must be specified.

275 errors.invoice.article_not_found_based_on_unitprice

Can’t locate the specified article based on the specified unit price. Make sure an article with the specified unit price exists.

276 errors.invoice.authorization_failed

Could not authorize the request, check your login credentials. Please contact the Collector for more help.

277 errors.invoice.countrycode_mismatch_with_customer_address

The specified country code for the customer’s address doesn’t match the country code specified in the (base) request.

278 errors.invoice.countrycode_mismatch_with_delivery_address

The specified country code for the customer’s delivery address doesn’t match the country code specified in the (base) request.

279 errors.invoice.countrycode_mismatch_with_invoice_address

The specified country code for the customer’s invoice address doesn’t match the country code specified in the (base) request.

282 errors.invoice.email_is_missing

The delivery method was set to email but the Email field was not present in the request.

283 errors.invoice.invalid_countrycode

Can be thrown when you try to request an address from another country than the one you are registered in.

284 errors.invoice.invalid_credit_time_usage

Credit time can’t be used for the specific invoice type.

285 errors.invoice.invalid_currency_code

The specified currency can’t be used.This exception can be thrown if you are registered in a country where the specified currency is not allowed to be used.

286 errors.invoice.invalid_delivery_address_usage

Private customers aren’t allowed to have different invoice addresses and deliver addresses, they must be the same.

287 errors.invoice.invalid_invoice_status

When you try to cancel an pending invoice that can’t be canceled based on the stage it is in.

288 errors.invoice.invalid_product_code

The product code cannot be found or the product is inactive.

289 errors.invoice.invalid_quantity

The quantity of an article is too low or too high compared to the quantity or quantity left on the article.

291 errors.invoice.invalid_transaction_amount

The amount may exceeds the total invoice amount, or the number of decimals has more than two digits after decimal (Can only have two digits after decimal).

292 errors.invoice.invoice_duedate_already_extended

The due date of the invoice has already been extended.

293 errors.invoice.invoice_exceeds_available_reservation

The purchase sum of the invoice exceeds the available reservation amount.

294 errors.invoice.invoice_extended_date_in_past

When you try to extend a due date by specifying a date in the past.

295 errors.invoice.invoice_invalid_type

When an invoice may be of the wrong type, some actions aren’t allowed to perform on specific invoices, for example, You can’t extend the due date on an invoice that is not of type Direct invoice (delivered in the package).

296 errors.invoice.invoice_not_found

When the specified Invoice number can’t be found. When trying to credit an invoice the invoice is already credited or not activated.

297 errors.invoice.invoice_type_is_not_allowed_to_be_used

You aren’t allowed to use the specified invoice type.

298 errors.invoice.mixed_currency

The article’s currency doesn’t match the currency on the invoice.

299 errors.invoice.mobile_phone_is_missing

The mobile phone is missing, which is needed because of the chosen notification type.

300 errors.invoice.not_allowed_to_send_notification_by_email

You aren’t allowed to send the specific invoice type by email.

301 errors.invoice.not_allowed_to_send_notification_by_mail

You aren’t allowed to send the specific invoice type by postal mail.

303 errors.invoice.purchase_not_found

An invoice can’t be found.

305 errors.invoice.reservation_not_found

There was no reservation for the specified customer.

306 errors.invoice.total_amount_must_be_positive

The amount of an invoice must be positive.

308 errors.invoice.unique_article_not_found

When an article with the same article id is found several times but has different unit prices. The unit price must be specified also to locate the specific article.

309 errors.invoice.validation_activation_option_value

The ActivationOption field was not one of its allowed values.

310 errors.invoice.validation_address1_length

The Address1 field was too long.

311 errors.invoice.validation_address2_length

The Address2 field was too long.

312 errors.invoice.validation_amount_parsing

The unit price or other kinds of amount fields could not be parsed. Make sure the amount is a decimal value and the number of decimals doesn’t have more than two digits after decimal (Can only have two digits after decimal).

313 errors.invoice.validation_amount_range

The Amount field was not within its allowed range.

314 errors.invoice.validation_amount_required

The Amount field was not present in the request.

315 errors.invoice.validation_article_id_length

The ArticleId field was too long.

316 errors.invoice.validation_article_id_required

An article is missing its ArticleId.

317 errors.invoice.validation_article_list_required

The ArticleList field was not present in the request.

318 errors.invoice.validation_cell_phone_number_length

The CellPhoneNumber field was too long.

319 errors.invoice.validation_city_length

The City field was too long.

320 errors.invoice.validation_city_required

The City field was not present in the request.

321 errors.invoice.validation_client_ip_address_length

The ClientIpAddress field was too long.

322 errors.invoice.validation_client_ip_address_required

The ClientIpAddress field was not present in the request.

323 errors.invoice.validation_coaddress_length

The CoAddress field was too long.

324 errors.invoice.validation_company_name_length

The CompanyName field was too long.

325 errors.invoice.validation_cost_center_length

The CostCenter field was too long.

326 errors.invoice.validation_country_code_length

The CountryCode field was too long.

327 errors.invoice.validation_country_code_required

The CountryCode field was not present in the request.

328 errors.invoice.validation_credit_date_required

The CreditDate field was not present in the request.

329 errors.invoice.validation_credit_time_out_of_range

Credit time is out of range, can only be between 0 and 99.

330 errors.invoice.validation_currency_length

The Currency field was too long.

331 errors.invoice.validation_currency_invalid

The specified currency may not be supported or is of an incorrect format (ISO 4217). Currency need to be at least three characters long and follow ISO 4217, e.g. SEK, DKK, NOK and EUR etc.

332 errors.invoice.validation_currency_required

The Currency field was not present in the request.

333 errors.invoice.validation_customer_number_length

The CustomerNumber field was too long.

334 errors.invoice.validation_delivery_address_required

The DeliveryAddress field was not present in the request.

335 errors.invoice.validation_description_length

The Description field was too long.

336 errors.invoice.validation_email_invalid

The e-mail address is not a valid e-mail address.

337 errors.invoice.validation_email_length

The Email field was too long. Can only be a maximum of 256 characters.

338 errors.invoice.validation_error

Input data is not correct.

339 errors.invoice.validation_first_name_length

The FirstName field was too long.

340 errors.invoice.validation_gender_value

The Gender field was not one of its allowed values.

341 errors.invoice.validation_invoice_address_required

The InvoiceAddress field was not present in the request.

342 errors.invoice.validation_invoice_delivery_method_value

The InvoiceDeliveryMethod field was not one of its allowed values.

343 errors.invoice.validation_invoice_number_length

The InvoiceNo field was too long.

344 errors.invoice.validation_invoice_number_required

The InvoiceNo field was not present in the request.

345 errors.invoice.validation_invoice_type_value

The InvoiceType field was not one of its allowed values.

346 errors.invoice.validation_last_name_length

The LastName field was too long.

347 errors.invoice.validation_order_date_required

The OrderDate field was not present in the request.

348 errors.invoice.validation_order_number_length

The OrderNo field was too long.

349 errors.invoice.validation_password_required

The Password field was not present in the request.

350 errors.invoice.validation_phone_number_length

The PhoneNumber field was too long.

351 errors.invoice.validation_postal_code_length

The PostalCode field was too long.

352 errors.invoice.validation_postal_code_required

The PostalCode field was not present in the request.

353 errors.invoice.validation_quantity_range

The Quantity field was not within its allowed range.

354 errors.invoice.validation_quantity_required

An article is missing its Quantity.

355 errors.invoice.validation_reference_length

The Reference field was too long.

356 errors.invoice.validation_registration_number_length

The RegNo field was too long.

357 errors.invoice.validation_registration_number_required

The RegNo field was not present in the request.

358 errors.invoice.validation_reserved_amount_parsing

The ReservedAmount field could not be parsed.

359 errors.invoice.validation_reserved_amount_range

The ReservedAmount field was not within its allowed range.

360 errors.invoice.validation_reserved_amount_required

The ReservedAmount field was not present in the request.

361 errors.invoice.validation_unit_price_parsing

The UnitPrice field could not be parsed.

362 errors.invoice.validation_unit_price_range

The UnitPrice field was not within its allowed range.

363 errors.invoice.validation_username_required

The Username field was not present in the request.

364 errors.invoice.validation_vat_parsing

The Vat field could not be parsed.

365 errors.invoice.validation_vat_range

The Vat field was not within its allowed range.

366 errors.invoice.validation_vat_required

The Vat field was not present in the request.

367 errors.invoice.article_exists_but_other_information

Article can’t be added because an existing article exists but with another Vat.

368 errors.invoice.customer_purchase_progress

A simultaneous purchase is already being processed for the customer.

400 errors.stored_card.expires.missing

Stored card expiration date missing.


Card could not be stored.

4002 errors.stored_card.token.invalid

Stored card token is invalid.