Update Payment Order
If a payment is
attempted, failed or currently being processed, you will not be able to
update the orderItems for the payment order. Should you need to update the
orderItems, you will have to abort the payment order and create a new order
with the updated orderItems.
The UpdateOrder operation is used when there is a change in the amount, vat
amount or there are added or removed order items in the payment order. This
feature is available in Seamless View only.
If you implement
UpdateOrder you need to refresh() the Payment Menu frontend after you have
called the UpdateOrder API from the backend.
In case the shopping cart is changed in another browser tab, that should also
lead to an UpdateOrder. On window.onfocus in the tab that had Payment Menu
initialized, refresh() should be invoked so the correct amount is authorized.
If the page is refreshed by a full page reload, refresh() is not necessary.
The response given when changing a payment order is equivalent to a GET
request towards the paymentorders resource. Even though the fields are the
same, the UpdateOrder request will overwrite the fields that were sent in the
initial Purchase request.
Request
1
2
3
 
PATCH /psp/paymentorders/09ccd29a-7c4f-4752-9396-12100cbfecce HTTP/1.1
Authorization: Bearer <AccessToken>
Content-Type: application/json;version=3.x/2.0      // Version optional for 3.0 and 2.0
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
{
    "paymentorder": {
        "operation": "UpdateOrder",
        "amount": 1500,
        "vatAmount": 375,
        "orderItems": [
            {
                "reference": "P1",
                "name": "Product1",
                "type": "PRODUCT",
                "class": "ProductGroup1",
                "itemUrl": "https://example.com/shop/products/1234",
                "imageUrl": "https://example.com/products/product1.jpg",
                "description": "Product description",
                "discountDescription": "Volume discount",
                "quantity": 351.3514,
                "quantityUnit": "pcs",
                "unitPrice": 300,
                "discountPrice": 200,
                "vatPercent": 2500,
                "amount": 1000,
                "vatAmount": 250
            },
            {
                "reference": "P2",
                "name": "Product2",
                "type": "PRODUCT",
                "class": "ProductGroup1",
                "description": "Product description",
                "quantity": 9876.1531,
                "quantityUnit": "pcs",
                "unitPrice": 500,
                "vatPercent": 2500,
                "amount": 500,
                "vatAmount": 125
            }
        ]
    }
}
 
 
      paymentOrder
      object
      check
    
    
          operation
          string
          check
        
        
        Determines the initial operation, defining the type of payment order created. Possible options are Purchase, Abort Verify, UnscheduledPurchase, Recur and Payout.
          amount
          integer
          check
        
        
        The transaction amount (including VAT, if any) entered in the lowest monetary unit of the selected currency. E.g.: 10000 = 100.00 SEK, 5000 = 50.00 SEK.
          vatAmount
          integer
          check
        
        
        The payment’s VAT (Value Added Tax) amount, entered in the lowest monetary unit of the selected currency. E.g.: 10000 = 100.00 SEK, 5000 = 50.00 SEK.  The vatAmount entered will not affect the amount shown on the payment page, which only shows the total amount. This field is used to specify how much of the total amount the VAT will be. Set to 0 (zero) if there is no VAT amount charged.
          description
          string
          check
        
        
          orderItems
          array
          check
        
        
        The array of items being purchased with the order. Note that authorization orderItems will not be printed on invoices, so lines meant for print must be added in the Capture request. The authorization orderItems will, however, be used in the Merchant Portal when captures or reversals are performed, and might be shown other places later. It is required to use this field to be able to send Capture orderItems. Capture requests should only contain items meant to be captured from the order.
              reference
              string
              check
            
            
              name
              string
              check
            
            
              type
              enum
              check
            
            PRODUCT, SERVICE, SHIPPING_FEE, PAYMENT_FEE, DISCOUNT, VALUE_CODE or OTHER. The type of the order item.
              class
              string
              check
            
            MobilePhone. Note that class cannot contain spaces and must follow the regex pattern [\w-]*. Swedbank Pay may use this field for statistics.
              itemUrl
              string
              check
            
            
              imageUrl
              string
              check
            
            
              description
              string
              check
            
            
              discountDescription
              string
              check
            
            
              quantity
              number
              check
            
            
              quantityUnit
              string
              check
            
            pcs, grams, or similar. This is used for your own book keeping.
              unitPrice
              integer
              check
            
            
              discountPrice
              integer
              check
            
            
              vatPercent
              integer
              check
            
            25% becomes 2500.
              amount
              integer
              check
            
            10000 equals 100.00 NOK and 5000 equals 50.00 NOK.
              vatAmount
              integer
              check
            
            10000 equals 100.00 NOK and 5000 equals 50.00 NOK.Response
1
2
3
 
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8; version=3.x/2.0
api-supported-versions: 3.x/2.0
 
 
      payment
      object
    
    payment object contains information about the specific payment.
          id
          string
        
        
        The relative URL and unique identifier of the     payment resource .     Please read about URL Usage     to understand how this and other URLs should be used in your solution.
          number
          integer
        
        
        The payment number, useful when there’s need to reference the payment in human communication. Not usable for programmatic identification of the payment, where id should be used instead.
          created
          string
        
        
          updated
          string
        
        
          state
          string
        
        Ready, Pending, Failed or Aborted. Indicates the state of the payment, not the state of any transactions performed on the payment. To find the state of the payment's transactions (such as a successful authorization), see the transactions resource or the different specialized type-specific resources such as authorizations or sales.
          prices
          object
        
        prices resource lists the prices related to a specific payment.
              id
              string
            
            
            The relative URL and unique identifier of the     prices resource .     Please read about URL Usage     to understand how this and other URLs should be used in your solution.
          amount
          integer
        
        
        The transaction amount (including VAT, if any) entered in the lowest monetary unit of the selected currency. E.g.: 10000 = 100.00 SEK, 5000 = 50.00 SEK.
          remainingCaptureAmount
          integer
        
        
          remainingCancelAmount
          integer
        
        
          remainingReversalAmount
          integer
        
        
          description
          string(40)
        
        
        A textual description of the purchase. Maximum length is 40 characters.
          userAgent
          string
        
        
        The user agent of the payer. Should typically be set to the value of the User-Agent header sent by the payer’s web browser.
          language
          string
        
        
        sv-SE, nb-NO, da-DK, en-US or fi-FI.
          urls
          string
        
        
          payeeInfo
          object
        
        
        The payeeInfo object, containing information about the payee (the recipient of the money). See payeeInfo for details.
          payers
          string
        
        payer resource where the information about the payer can be retrieved.
          operations
          array
        
        
        The array of operations that are possible to perform on the payment in its current state.