Getting Started (Recommendations)

The basic concept of our API is to keep everything as simple as possible for you and to avoid any unnecessary backend work on your side.

From Developers, For Developers

To achieve this goal, we reduced the required fields in the API recommendation endpoint to a minimum and thereby circumvented the necessity for you to do any backend matching.

Get Your First Recommendation

A product recommendation consists of two parts. First, you inform us which product is in the basket, and then we automatically provide you with a list of products that would be a great fit. This structured list of products includes all relevant information.

To get your first recommendation, please provide us the following information:

  • The product in your basket: Simply send us the name or any other text string — we accept any format
  • A session to identify the request: You can provide us with any session information you have.
  • Your Partner ID, to identify yourself: The recommendations are public and do not require authorization.

The amount of information is very limited — at this point, no personal information about your customer is necessary.

Change the Default

The basic setup of your account is stored and can be changed in the admin interface. However, you always have the ability to edit the basic information connected to your account during a recommendations request, including:

  • Country
  • Language
  • Currency
  • Number of recommendations

If you leave this information blank during your request, we will use the default values stored for your account.

Get More Specific Recommendations

To improve the recommendations, you can voluntarily provide more information such as:

  1. Context-related information
  2. Product-related information
  3. Customer-related information

 

None of this information is required, but if you include it, the customer-related information must be GDPR compliant.

Context-related Information

Context-related information is a fully flexible tool you can use to give us any information about the shopping situation, including (but not limited to):

  • The request’s country of origin
  • Whether it is an ongoing marketing campaign
  • Where the user is coming from‍

 

Product-related Information

The more we know about the product in the basket, the better we can predict which cross-selling item best fits the profile. Therefore, you have the ability to provide us with more information about the product, such as:

  • Product price 
  • Actual value of the product (without discounts or subsidies)
  • Color or design
  • Product category
  • Any other product-related tag

Customer-related Information

In some cases, information about the customer is relevant for the product recommendation and is GDPR compliant. In this case, the following customer information can be provided to make the recommendation fit even better:

  • Age
  • Gender
  • Postal code
  • Country
  • City

  • ...

API Integration (Recommendations)

The most flexible way to get the recommendations is to use our API (see our Reference for all technical details).

You will receive your recommendations with a simple GET request:

https://api.35up.io/v1/recommendations

The API does not require any authentication for the recommendations request.

Simple Recommendations Request

The most simple recommendations request only requires three additional URL-encoded parameters:

  • BaseProduct.title: Product that is in the basket - Simply send us the name or any other text string, — we accept any format.
  • Session: A session to identify the request - You can provide us any session information you have.
  • Partner: Your partner ID, to identify yourself.

In this example, we use the product "Apple iPhone 12 Pro - Pacific blue" ( URL-encoded - Apple%20iPhone %2012%20Pro%20-%20Pacific%20blue) with the session "test" and the partner ID "35up-test."

https://api.35up.io/v1/recommendations? partner=35up-test& session=test& baseProduct.title=
Apple%20iPhone% 2012%20Pro%20-%20 Pacific%20blue

No additional parameters are necessary to make your first successful API request.

Adjust Default Values

Every request uses the partner ID to load default settings for:

  • Country: Any two-digit ISO code to define the country will work.
  • Language: Any two-digit ISO code will work to define the language. Currently, our API speaks English, German, and French.
  • Limit: The number of recommendations you want to have.

These values can be adjusted in the admin area. To edit these default values during the request, additional parameters are needed. In this case, we want to take our first example, but change the values to Germany, German, and Euros, with a maximum number of 10 products:

https://api.35up.io/v1/recommendations? partner=35up-test&session=test &baseProduct.title=
Apple%20iPhone%2012 %20Pro%20-%20Pacific%20 blue&limit=10 &lang=de&country=de

The currency Euro is connected to the country Germany, so in this case no additional parameter is needed.

Provide Additional Product Information

The more information you provide about the product in the basket, the better the recommendation. To provide additional information, you can add any baseProduct* value, such as:

  • Price: Product price
  • Value: Actual value of the product (without discounts or subsidies)
  • Color: Color or design
  • Category: Product category
  • Tag: Any other product-related tag
https://api.35up.io/v1/recommendations? partner=35up-test &session=test&baseProduct.title=
Apple%20iPhone%2012%20 Pro%20-%20Pacific%20blue &limit=10&lang=de&country=de &
price=44.99 &value=999.99&color=blue &category=smartphone &tag=expensive

These additional parameters are not required, but they can provide helpful additional information.

Provide Additional Customer Information

If information about the customer could influence the recommendation, you can submit these values as well. However, you have to take care that all information provided is GDPR compliant. These values can be added as customer.*

Following is an example for an 80-year-old person from Boston:

  • Age: 80
  • City: Boston
https://api.35up.io/v1/recommendations? partner=35up-test &session=test& baseProduct.title=
Apple%20iPhone%2012%20 Pro%20-%20Pacific%20blue& limit=10&lang=de&country=de
&price=44.99&value=999.99 &color=blue& category=smartphone& tag=expensive
&customer. age=80&customer.city=Boston

These additional parameters are not required, but they can provide helpful additional information.

Plugin Integration

The use of a plugin eases the integration and does not require additional coding. We currently have plugins under development for the following shop systems:

Magento

Shopware Logo
Shopware

Please contact us if you are interested in testing our plugins before release.

Cross-Selling Widget

The recommendations are displayed in the cross-selling widget. Moreover, the widget provides the customer with additional information and allows the customer to add the products to the cart.

The widget is fully configurable and can be adjusted to the look and feel of your website.

Positioning

You can decide where the widget should be displayed (e.g., in the basket, the checkout, a popup, the product-detail page, or on all pages mentioned). The best-fitting location and amount of integrations depend on your user journey.

Basket

The most common location in which to display the cross-selling widget is the basket. The customer has already selected his/her final product and has displayed a willingness to buy, so that is the perfect opportunity to show fitting cross-selling items. Moreover, the basket is a late stage in the journey and shows a high-level of trust in your brand. However, it is still possible to seamlessly add complementary products to the basket without the need to recalculate the final price and taxes.

Overlay to Basket

Another option is to display the widget as a popup between the order detail page and the basket, right after the customer adds the base product. In this case, the customer has already selected his final product and demonstrated a high willingness to buy it. An overlay reminds him about fitting cross-selling items and creates a high awareness of the complementary product. In addition, there is no need to recalculate the final price and taxes.

Product Detail Page

The cross-selling widget can also be displayed to show complementary items on every product-detail page. This display enriches the product-detail pages. To prevent the complementary item(s) from replacing the base product purchases, an "add to cart" click should not lead to a direct load of the basket, but should stay on the product-detail page.


API Integration (Widget)

The most flexible way to get and show the recommendations is to use our API (see our Reference for all technical details).

You will receive your recommendations with a simple GET request:


https://api.35up.io/v1/recommendations

The response is a structured JSON, which provides all the information needed to show the recommended cross-selling products.

JSON Response

A comprehensive JSON response for one product is below. However, if more than one product is recommended, the "recommendations" array will provide the additional products in the following structure.


{
 "recommendations": [
   {
     "vendor": {
       "legalName": "caseable GmbH",
       "name": "caseable",
       "logo": {
         "square": "https://media.caseable-stage.de/ logo/squared.png",
         "landscape": "https://media.caseable-stage.de/ logo/horizontal.png"
       },
       "id": "caseable"
     },
     "sku": "caseable/ PF165XXC01737XXAPIP65",
     "price": {
       "value": 19.9,
       "formatted": "$ 19.90",
       "currency": "USD"
     },
     "name": "Apple iPhone 11 Pro Max Eco Friendly Phone Case, \ "Eco-Design\" by caseable Designs",
     "images": {
       "thumbnail": "https://caseable.com/ media/catalog/product/ thumbnail/ apple-iphone-11-pro-max- eco-friendly-phone-case/ caseable-designs/ eco-design.jpg"
     },
     "descriptions": {
       "short": "Design protection for your device",
       "long": "This accessory from caseable not only looks great, but also protects your device all around. caseable produces environmentally on order and is known for its great artist designs."
     },
     "delivery": {
       "timeMin": 5,
       "timeMax": 8
     },
     "actions": {}
   }
 ]
}

The JSON response always provides the following information, which can be used to display the products.

Vendor Information

The vendor object provides the following information for every vendor:

  • LegalName: The legal name of the entity, as displayed on invoices
  • Name: The name the customer sees
  • Logo: A URL to a logo image file in squared and landscape - This image can be used if you want to show the vendor’s logo to the customer.
  • ID: the internal vendor ID on our platform

Product Information

The SKU string shows the unique identifier of a product on our platform.

The price object provides following information:

  • Value: Numeric value of the price, for calculations
  • Formatted: The numeric value in the correct format to display to the customer
  • Currency: The three-letter ISO code for the price currency

The name string shows the full name of the product.

Images provides a number of product image URLs with the required "thumbnail."

The descriptions object provides:

  • Short: A one-line description of the cross-selling product, to introduce it without going into much detail
  • Long: A longer description of the product, to create a detailed overlay in the widget

The delivery object provides two data points on the delivery time:

  • TimeMin: The minimum delivery time in days
  • TimeMax: The maximum delivery time in days

Actions

Actions are optional actionable URLs that trigger operations on the platform. They are deactivated in the default configuration.


Basket Data Flow

To allow a seamless customer journey, the cross-selling items must be added to the basket and processed on the backend. The handover of the data from the cross-selling widget to the basket and the backend depends on the type of integration (API/plugin) and the shop systems involved.

The minimum requirements are as follows:

  • SKU 
  • Name 
  • Price 
  • Quantity 

Based on this information, a new total price can be calculated and a new comprehensive basket can be rendered.

API Integration (Basket)

Please check the API Reference for all technical details about the API.

The API was designed to make the integration for developers as easy as possible. However, the handover of the product data from 35up to your backend requires additional coding on your side when you use the API. The additional 35up product, from this point on, needs to be present in your database.

Best Practices

To achieve the handover using the standard processes that most shop systems use seems to be the easiest, cleanest approach. Of course, the exact execution depends on your system and your system conditions. Here, we identify three best practices:

Configurable Products

Many modern shop systems provide the ability to add "configurable" products into the basket. These products do not have to preexist in your product database — they can be created "on the fly." This mechanism is perfect for adding 35up cross-selling to the basket and handing over the data to your backend. In this case, you simply create a new configurable product every time a customer adds a 35up product to the basket and enrich the necessary information based on the product data provided.

This approach ensures the sole use of standard processes and is not likely to require additional changes on the backend.

Dummy Products

Another approach to hand over the product data from the front end to the backend is the use of dummy products. If your shop system does not allow for configurable products, dummy products are very often the next best choice. In this case, you create one "35up dummy" product in your product database. Every time a 35up product is added to the basket, you add this dummy product and overwrite the price and name with the values from the product info.

Order Attributes

If neither the configurable nor the dummy product approach works for your system, you could add the additional cross-selling items as attributes or comments to an order. In this case, make sure that the information is stored in a structured, repeatable way and that you can use the values to calculate the final price.

Get Product Info

To support your effort in handing over the product data, we created an additional API endpoint: "GET products."

https://api.35up.io/v1/products/{sku}

This endpoint provides you with all product information based on the SKU. With this endpoint, you only have to hand over the SKU and the quantity, and you can reach all other information on demand later.


{
 "recommendations": [
   {
     "vendor": {
       "legalName": "caseable GmbH",
       "name": "caseable",
       "logo": {
         "square": "https://media.caseable-stage.de/ logo/squared.png",
         "landscape": "https://media.caseable-stage.de/ logo/horizontal.png"
       },
       "id": "caseable"
     },
     "sku": "caseable/ PF165XXC01737XXAPIP65",
     "price": {
       "value": 19.9,
       "formatted": "$ 19.90",
       "currency": "USD"
     },
     "name": "Apple iPhone 11 Pro Max Eco Friendly Phone Case, \ "Eco-Design\" by caseable Designs",
     "images": {
       "thumbnail": "https://caseable.com/ media/catalog/product/ thumbnail/ apple-iphone-11-pro-max- eco-friendly-phone-case/ caseable-designs/ eco-design.jpg"
     },
     "descriptions": {
       "short": "Design protection for your device",
       "long": "This accessory from caseable not only looks great, but also protects your device all around. caseable produces environmentally on order and is known for its great artist designs."
     },
     "delivery": {
       "timeMin": 5,
       "timeMax": 8
     },
     "actions": {}
   }
 ]
}

The JSON response always provides the following information, which can be used to store the product with all its details in your product database:.

Vendor Information

For every vendor, the vendor object provides:

  • LegalName: The legal name of the entity, as displayed on invoices
  • Name: The name that the customer sees
  • Logo: A URL to a logo image file in squared (portrait) and landscape mode - This image can be used if you want to show the vendor’s logo to the customer.
  • ID: The internal vendor ID on our platform

Product Information

The SKU string shows the unique identifier of a product on our platform.

The price object provides following information:

  • Value: Numeric value of the price, for calculations
  • Formatted: The numeric value in the correct format to display to the customer
  • Currency: The three-letter ISO code for the price currency

The name string shows the full name of the product.

Images provides a number of product image URLs, with the required "thumbnail."

The descriptions object provides:

  • Short: A one-line description of the cross-selling product, to introduce it without going into much detail
  • Long: A longer description of the product, to create a detailed overlay in the widget

The delivery object provides two data points on the delivery time:

  • TimeMin: The minimum delivery time in days
  • TimeMax: The maximum delivery time in days

Order Flow

Every product that is ordered at your shop will pass through your backend, the 35up platform, and ultimately end  up in the vendor's system.

Order Flow

The customer experiences the journey on your website seamlessly. However, he/she will receive two different packages: one from your shop with the base product and one from the vendor with the cross-selling product.

API Integration (Place & Update Order)

Please check the API Reference for all technical details about the API.

Order placements and updates require authorization and need to be executed on the backend.

Authorization

35up uses the standard HTTP authorization, based on base64 encoding.

Header: Authorization
Value: basic username:password (base64 encoded)

Most tools and libraries will automatically handle this process.

Place an Order

To place an order, you need to make a POST request authorized to:

https://api.35up.io/v1/orders

All the information needed is part of the request body:

{
 "session": "123abc",
 "reference": "Order74927943",
 "customer": {
   "firstName": "Jeffrey",
   "lastName": "Bazos",
   "email": "jeffrey@nile.com",
   "phone": "001384859590"
 },
 "shippingAddress": {
   "firstName": "Jeffrey",
   "lastName": "Bazos",
   "email": "jeffrey@nile.com",
   "phone": "001384859590",
   "company": "Nile",
   "street": "Monopoly Street",
   "streetNumber": "66",
   "extra": "Top Floor",
   "city": "Seattle",
   "postcode": "98121",
   "state": "WA",
   "country": "US"
 },
 "items": [
   {
     "sku": "caseable/ HC12PXX127030XXAPIP2P",
     "qty": 2,
     "config": {
       "size": "45",
       "color": "black"
     }
   }
 ]
}

Reference information

  • Session: A session to identify the request - You can provide us any session information that you have. Please use the same session identifier you already used for the get /recommendations request.
  • Reference: This is an optional but highly recommended reference value, so you can easily identify the base product’s complementary order. Best practice here is to use your order number from the base product order.

Customer Information

  • FirstName: Your customer’s first name
  • LastName: Your customer’s last name
  • Email: Your customer’s email address
  • Phone: Your customer’s phone number (optional)

Shipping Address

The shipping address is crucial. Please make sure you always provide the correct information to avoid unhappy customers and additional costs.

  • Firstname, lastname, email, phone: These values are optional if they are the same as the information provided under "customer."
  • Company: Optional, if the order should be shipped to a company.
  • Street: Street name to which the order should be shipped.
  • StreetNumber: Street number to which the order should be shipped.
  • Extra: Additional address line, if needed.
  • City: City to which the order should be shipped.
  • Postcode: The city's postcode.
  • State: The state to which the order should be shipped in the US and Canada. Please use two-digit ISO code (ISO 3166-1 alpha-2).
  • Country: Country to which the order should be shipped. Please use two-digit ISO code (ISO 3166-1 alpha-2).

Product Items

The item’s array provides the information about which product should be ordered in what quantity:

  • SKU: Unique product identifier, provided by the product’s endpoint or the recommendation endpoint
  • QTY: Quantity of the product to be ordered
  • Config: The config object is optional and sends additional attributes about the product to 35up.

Response

If the order was successfully placed, you will receive a response with the status code 201.


{
 "id": "42CA346434",
 "status": "approved",
 "updatedAt": "1603375967",
 "createdAt": "1603375967"
}

This response contains valuable information:

  • ID: Unique ID of your 35up order. Best practice is to keep this order ID in your database.
  • Status: Status of the order.
  • UpdatedAt: Timestamp of when the order was updated for the last time.
  • CreatedAt: Timestamp of when the order was created for the last time.

Status

An order can have one of the following statuses:

  • Pending: The default state of a created order; awaits status update to proceed.
  • Approved: Order has been approved and will be processed.
  • Processing: Order is processing on the vendor side.
  • Fulfilled: Vendor shipped the order.
  • Delivered: Order arrived to the customer. Status either triggered by tracking or time.
  • Pending_cancellation: A cancellation was requested.
  • Cancelled: A cancellation was performed.
  • Closed: Final state; the order is closed. Status either triggered by time or cancellations.

Update an Order

To update an order status, you need to make an authorized PATCH request to:

The ID is the order ID received as a response to the POST order request.

https://api.35up.io/v1/orders/{id}

The request body:

{
 "status": "approved",
 "message": "order successfully paid by the customer"
}
  • Status: The new status you want the order to have. The following statuses are possible: pending, approved, cancelled.
  • Message: Optional additional information that the system will store and display.

The response will have the same structure as the POST order request response.

Time Delay of an Order

If there is to be a delay between placing an order and dispatching it, this can be solved as follows:

  • The order is created via POST order in the status "pending".
  • Only when the order is to be dispatched is the order set to the status "approved" via a PATCH order.

This can be useful if, for example, credit scoring is to be carried out first for the main order.

API Integration (List Orders)

Please check the API Reference for all technical details about the API.

The listing of orders requires authorization and needs to be executed on the backend.

Authorization

35up uses the standard HTTP authorization, based on base64 encoding.

Header: Authorization
Value: basic username:password (base64 encoded)

Most tools and libraries will automatically handle this process.

Get a List of Orders

To get a list of all orders, you need to make an authorized GET request  to:

https://api.35up.io/v1/orders

The response provides you with a list of orders:

{
 "orders": [
   {
     "id": "42CA346434",
     "status": "approved",
     "updatedAt": "1603375967",
     "createdAt": "1603375967"
   }
 ]
}

 

  • ID: Unique ID of your 35up order. Best practice is to keep this order ID in your database
  • Status: Status of the order.
  • UpdatedAt: Timestamp of when the order was updated for the last time.
  • CreatedAt: Timestamp of when the order was created for the last time.

Status

An order can have one of the following statuses:

  • Pending: The default state of a created order; awaits status update to proceed.
  • Approved: Order has been approved and will be processed.
  • Processing: Order is processing on the vendor side.
  • Fulfilled: Vendor shipped the order.
  • Delivered: Order arrived to the customer. Status either triggered by tracking or time.
  • Pending_cancellation: A cancellation was requested.
  • Cancelled: A cancellation was performed.
  • Closed: Final state; the order is closed. Status either triggered by time or cancellations.

Get detailed order information.

Based on the ID from the Get Orders request, you can get detailed information about a single order with a GET orders/ID request:

https://api.35up.io/v1/orders/{id}

The response body includes all necessary information:

{
 "id": "42CA346434",
 "status": "approved",
 "partner": {
   "id": "yourshop"
 },
 "customer": {
   "firstName": "Jeffrey",
   "lastName": "Bazos",
   "email": "jeffrey@nile.com",
   "phone": "001384859590"
 },
 "shippingAddress": {
   "firstName": "Jeffrey",
   "lastName": "Bazos",
   "email": "jeffrey@nile.com",
   "phone": "001384859590",
   "company": "Nile",
   "street": "Monopoly Street",
   "streetNumber": "66",
   "extra": "Top Floor",
   "city": "Seattle",
   "postcode": "98121",
   "state": "WA",
   "country": "US"
 },
 "items": [
   {
     "id": "5f91935facffbdf7b8c6b347",
     "sku": "caseable/HC12PXX127030XXAPIP2P",
     "qty": 2,
     "status": "approved",
     "updatedAt": "1603375967",
     "createdAt": "1603375967"
   }
 ],
 "updatedAt": "1603375967",
 "createdAt": "1603375967"
}

General Information

  • ID: Unique id of your 35up order. Best practice is to keep this order ID in your database.
  • Status: Status of the order.
  • UpdatedAt: Timestamp of when the order was updated for the last time.
  • CreatedAt: Timestamp of when the order was created for the last time.
  • Partner: Your own shop identifier.

Customer information

  • FirstName: Your customer’s first name
  • LastName: Your customer’s last name
  • Email: Your customer’s email address
  • Phone: Your customer’s phone number (optional)

Shipping Address

The shipping address is crucial. Please make sure you always provide the correct information to avoid unhappy customers and additional costs.

  • Firstname, lastname, email, phone: These values are optional if they are the same as the information provided under "customer."
  • Company: Optional, if the order should be shipped to a company.
  • Street: Street name to which the order should be shipped
  • StreetNumber: Street number to which the order should be shipped
  • Extra: Additional address line, if needed
  • City: City to which the order should be shipped
  • Postcode: The city's postcode
  • State: State to which the order should be shipped in the US and Canada. Please use the two-digit ISO code (ISO 3166-1 alpha-2).
  • Country: Country to which the order should be shipped.  Please use the two-digit ISO code (ISO 3166-1 alpha-2).

Product Items

The items array provides information about which product should be ordered in what quantity:

  • ID: The order’s unique vendor ID
  • SKU: Unique product identifier
  • QTY: Quantity of the product to be ordered
  • Status: Status of the order for that specific item
  • UpdatedAt: Timestamp of when the order was updated for that specific item for the last time
  • CreatedAt: Timestamp of when the order was created for that specific item for the last time

Getting Started (Returns)

The return management does not need a separated integration; it can be fully managed through admin. In the admin area, you can request returns for your customers or confirm incoming returned products.

However, a full integration of the return process is beneficial and can fully automate the process. The integration enables you to:

  • Connect your current return process to 35up
  • Connect automated refund processes to 35up
  • Automatically generate returns for the cross-selling item when the base product is returned
  • Avoid manual input and manual errors

Return Flow

Once the customer requests a return, the request needs to be sent to 35up to create a return label. With this return label, the customer then sends the product directly back to the vendor.



Order and return flow

To refund the customer is in your responsibility. 35up will refund your purchase price.

API Integration (Returns)

Please check the API Reference for all technical details about the API.

To request or patch a return requires authorization and needs to be executed on the backend.

Authorization

35up uses the standard HTTP authorization, based on base64 encoding.


Header: Authorization
Value: basic username:password (base64 encoded)

Most tools and libraries will automatically handle this process.

Request a Return

To place an order, you need to make an authorized POST request to:

https://api.35up.io/v1/returns

All the information needed is part of the request body:

{
 "orderId": "42346434",
 "items": [
   {
     "itemId": "412412",
     "sku": "vendor_id/FEI60XX114014XXAPIP80",
     "quantity": 2
   },
   {
     "itemId": "100397",
     "sku": "vendor_id/FEI60XX114014XXAPIP81",
     "quantity": 1
   }
 ],
}

Return information

  • OrderId: Unique ID of the 35up order that you want to return
  • ItemId: Unique ID of Vendor Order
  • SKU: SKU of product that should be returned
  • Quantity: Quantity of the item that should be returned

Update a Return

To update a return status, you need to make an authorized PATCH request to:

https://api.35up.io/v1/returns/{id}

The ID is the order ID that should be returned.

The request body:

{
 "status": "approved",
}
  • status: The new status you want the return to have.

Return Status

  • Created: Default initial state.
  • Rejected: Processing of the return request is not possible.
  • Awaiting_return: Waiting for the customer to send back the product.
  • Expired: Customer did not ship the items in the allowed timeframe.
  • Customer_shipped: Customer shipped item (only possible if fully integrated in return-tracking process).
  • Seller_received: You received the product because the customer shipped it to you instead of the vendor.
  • Seller_shipped: You shipped the product to the vendor.
  • Vendor_received: The vendor received the product.
  • Voided: Package got lost.
  • Confirmed: The vendor received and checked all items.
  • Not_confirmed: Not all items were received or they were in the wrong condition. Dispute to be opened.
  • Awaiting_refund: Customer awaits refund.
  • Refunded: Customer received refund.
  • Awaiting_dispute: Problem has arisen that needs to be resolved.
  • Cancelled: Return was cancelled.
  • Closed: Final state — cannot be changed.

Payment Flow

In the default case, payment collection is the seller’s responsibility. The seller collects the amount from the customer. 35up will invoice the seller, and the vendor will invoice 35up.


Order and payment flow

The exception to the default case happens when the seller only collects the IBAN from the customer and not the amount itself. In this case, the IBAN can be passed to 35up to collect the cross-selling item’s purchase amount.

API Integration (Payment)

Please check the API Reference for all technical details about the API.

The request to post payment information requires authorization and needs to be executed on the backend.

Authorization

35up uses the standard HTTP authorization, based on base64 encoding.

Header: Authorization
Value: basic username:password (base64 encoded)

Most tools and libraries will automatically handle this process

Provide Payment Information (SEPA)

To place the SEPA payment information of an order, you need to make an authorized POST request to:

https://api.35up.io/v1/payments/sepa-direct-debit

All the information needed is part of the request body.

{
 "orderId": "42CA346434",
 "value": 99.9,
 "currency": "EUR",
 "params": {
   "iban": "DE1012341234123412",
   "fullName": "John Doe",
   "bic": "DRESDEFF160"
 }
}

Order information

  • OrderId: Unique ID of your 35up order to which the payment information belongs
  • Value: The total purchase amount, including taxes
  • Currency: The currency code; three-character ISO 4217

Payment Parameters

  • IBAN: Verified IBAN of the account from which to collect the money
  • FullName: Full name of the account from which to collect the money
  • BIC: BIC of the account from which to collect the money