Skip to content

Place order

/v2/adyen/place_order

Target audience: Developers

Place order

Release version: 4.7.5

Introduction

This endpoint places an Adyen order with only the customers email address instead of an authenticated account. Depending on the result further actions might need to be taken. Read more here.

Attention

This API gives access to Adyen related endpoints. Since this section is quite specific it has it's own section of documentation. Read more here.

URI

Environment URI
Stage https://payway-api.stage.adeprimo.se/external/api/v2/adyen/place_order
Production https://backend.worldoftulo.com/external/api/v2/adyen/place_order

Requirements

Identity Scope
No /external/adyen/w

Curl example

Request
curl --request POST \
  --url https://payway-api.stage.adeprimo.se/external/api/v2/adyen/place_order \
  --header 'authorization: Bearer <token>' \
  --header 'content-type: application/json' \
  --data '{
  "payment_method": {
    "type": "scheme",
    "issuer": "265"
  },
  "account": {
    "email": "payway@adeprimo.se"
  },  
  "product_code": "package_code",
  "period_id": "5e4beac909c04c404a46c730",
  "return_url": "https://returnurl.com",
  "traffic_source": "facebook",
  "subscription_start_date": "2015-05-15",
  "discount_code": "code",
  "merchant_reference": "adeprimo-campaign-001",
  "origin": "https://example.purchase.org",
  "browser_info": {
    "browser_ip": "127.0.0.1",
    "browser_language": "sv-FI",
    "browser_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36",
    "referer": "https://adeprimokuriren.se",
    "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "color_depth": 24,
    "screen_height": 723,
    "screen_width": 1536,
    "time_zone_offset": 0,
    "java_enabled": true
  }
}'
Parameters
Parameter Description Required Format Type
account Information about the customer that should be registered Required Object
email
Email of the customer Required String
first_name
First name of the customer Optional String
last_name
Last name of the customer Optional String
mobile_phone_number
The phone number. Must be a valid phone number, with or without country code Optional String
social_security_number
The social security number. Must be a valid social security number (SSN) in the country of the organisation Optional String
birth_date
The birth date. Must be in a DateTime parseable format Optional String
company_name
Company name, if applicable Optional String
company_registration_number
Company registration number (CRN), if applicable Optional String
account_origin
The origin of the account Optional String
alias
The alias of the account Optional String
address
Address object Optional Object
payment_method Payment method received from state data in onSubmit event Required Provided by Adyen widget Object
product_code The product code for a package/campaign. Required Size range: 1..50 Allowed values: "/^[a-zA-Z-_0-9]+$/" String
period_id Id of the selected payment period Required Size range ..24
Allowed values: "/^[a-f\d]{24}$/i"
String
return_url URI for payment provider redirects, e.q. 3D Secure 1 Required Size range: ..1024 Allowed values: uri regex that is too long to show here. Must be absolute String
origin URI where purchase is performed (E.g. https://buy.example.org) Required Size range: ..1024 Allowed values: uri regex that is too long to show here. Must be absolute String
traffic_source The source of the purchase. E.g. facebook, web. Traffic sources need to be setup in PAP Optional Size range: ..100 String
subscription_start_date Date when the subscription will be activated
Note that this property will be ignored if voucher_purchase is set to true
Optional Allowed values: 2020-05-15 DateTime
discount_code Discounted price. Code needs to be defined in PAP Optional Size range: 1..100 String
merchant_reference An optional customer reference, can be a code or an url. Optional Size range: ..1024 String
browser_info Information about client browser Required Object
browser_ip
Client ip-address Required e.q. "127.0.0.1" String
browser_language
Client language Required e.q. "sv-FI" or "sv-SE" String
browser_user_agent
Client user agent Required e.q. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" String
referer
Origin URI of the request Required e.q. "https://adeprimo.se" String
accept_header
Client accept header Required e.q. "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8" String
color_depth
Color depth of client browser Required e.q. 24 Integer
screen_height
Screen height of client browser Required e.q. 723 Integer
screen_width
Screen width of client browser Required e.q. 1536 Integer
time_zone_offset
TimeZoneOffset of client browser Required e.q. 0 Integer
java_enabled
Is java enabled on client browser Required e.q. true/false Boolean
delivery_address Address object Optional Object
voucher_purchase Decides whether the order should be handled as a subscription or voucher.
Read more here
Optional Boolean
voucher_details Contains information about the voucher if voucher_purchase is set to true Optional Object
expire_date
The date the voucher is no longer valid Required DateTime
custom_urls Information about custom URL's, ie. where to send the user afterwards Optional
reset_password_url
Absolute URI to a page allowing the customer to reset their current password Optional e.g. "https://adeprimo.se/reset-password"
return_url
Absolute URI to a page where the customer should be sent after a successful purchase Optional e.g. "https://adeprimo.se/"
paywall_id The ID of the paywall.
Size range: ..24
Allowed values: "/^[a-f\d]{24}$/i"
Optional Size range ..24
Allowed values: "/^[a-f\d]{24}$/i"
String

Here we can receive three types of answers. Depending on the status code received you will have to perform additional actions to complete the payment.

Purchase complete

HTTP 200 Purchase complete
{
  "item": {
    "receipt_id": "5e4becc109c04c404a46c744",
    "order_id": "ADEPRIMO-123",
    "message": "The payment was successfully authorised.",
    "status": "complete",
    "account_id": "6a4becc109c04c404a46c445",
    "account_status": "created|known"
  }
}
If the status is "complete" then no additional actions need to be taken.

The "receipt_id" can be used to fetch the receipt for the recently made payment using the Me API.

Payment pending
HTTP 200 Payment pending
{
  "item": {    
    "message": "It's not possible to obtain the final status of the payment at this time.",
    "status": "pending",
    "account_id": "6a4becc109c04c404a46c445",
    "account_status": "created|known"
  }
}

If the status is "pending" the user has completed the payment but the final result is not yet known. Payway will receive a callback when it is.

Payway either fails or completes the payment depending on the result.

For a successful result, the events associated with a completed purchase will be triggered. For instance order_closed.

In turn, all the events associated with a failed purchase will be triggered on an unsuccessful result. For instance payment_failure.

Action required
HTTP 200 Action required
{
  "item": {
    "action": {
      "paymentMethodType": "scheme",
      "token": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY...",
      "type": "threeDS2Fingerprint"
    },
    "session_reference": "session_reference",
    "message": "The issuer requires further shopper interaction before the payment can be authenticated. Returned for 3D Secure 2 transactions.",
    "status": "action_required",
    "account_id": "6a4becc109c04c404a46c445",
    "account_status": "created|known"
  }
}

If you receive the status "action_required" you need to perform additional action(s) to complete the purchase.

See here for more info.

Errors

This API uses the common error conventions of the Payway API

See common error responses