On this page, you will find information about how to Process the result and the different Purchase states throughout the CheckOut session.
The last step occurs when the customer finishes working with the form and there’s a result available. The client script signals this by calling the done callback function (see Showing the Check-Out Form).
The done callback doesn’t contain any information about whether the payment succeeded or not. It only signals that the customer is done working with the form. The partner site back-end must check what the actual result was. We have designed it this way as a security measure so that the partner integrators aren’t tempted to trust the client script. Unfortunately, there’s no way to prevent malicious customers from modifying the script since it runs in their browsers.
The implementation of the done function is up to partners. However, a common scenario verifies the result, passing the Purchase ID is a parameter of the payment status API function
Returns information about a single purchase identified by a Purchase ID.
GET: {api_url}/api/partner/payments/{purchaseid} Authorization: Bearer {partner_access_token}
{ "purchaseId": "string", "extraIdentifiers": { "description": "string", "orderReference": "string", "loyaltyNumber": "string", "productGroup": "string", "attachment": "string", "referenceName": "string" }, "totalPrice": 0, "createdUtc": "2020-05-27T10:15:21.195Z", "expiredUtc": "2020-05-27T10:15:21.195Z", "checkoutSite": { "siteCode": "string", "countryCode": "string", "currencyCode": "string" }, "mode": "B2C", "b2C": { "step": { "customerToken": "string", "current": "Initialized", "rememberMe": "Hidden", "smsNewsletterSubscription": "Hidden", "emailNewsletterSubscription": "Hidden" }, "userInputs": { "email": "string", "zip": "string", "ssn": "string", "phone": "string" }, "invoicingAddress": { "address1": "string", "address2": "string", "zip": "string", "city": "string", "country": "AF", "careOfAddress": true, "firstName": "string", "lastName": "string" }, "deliveryAddress": { "address1": "string", "address2": "string", "zip": "string", "city": "string", "country": "AF", "careOfAddress": true, "firstName": "string", "lastName": "string", "type": "Default", "viewType": "Unchecked" } }, "b2B": { "step": { "customerToken": "string", "current": "Initialized", "rememberMe": "Hidden", "smsNewsletterSubscription": "Hidden", "emailNewsletterSubscription": "Hidden" }, "userInputs": { "email": "string", "zip": "string", "organizationNumber": "string", "customerSsn": "string", "phone": "string" }, "customerInfo": { "firstName": "string", "lastName": "string" }, "invoicingAddress": { "address1": "string", "address2": "string", "zip": "string", "city": "string", "country": "AF", "careOfAddress": true, "name": "string" }, "deliveryAddress": { "address1": "string", "address2": "string", "zip": "string", "city": "string", "country": "AF", "careOfAddress": true, "firstName": "string", "lastName": "string", "type": "Default", "viewType": "Unchecked" } }, "authenticationType": "None", "paymentMethods": { "selectedPayment": { "type": "Invoice", "recurringPayment": "Hidden", "recurringPaymentToken": "string" } }, "cardPaymentState": { "maskedCardNumber": "string", "cardBrand": "string", "cardExpirationDate": "string" }, "customerBalance": 0 }
Name | Data Type | Description |
---|---|---|
PurchaseId | string | The ID that the partner uses to identify the purchase. |
ExtraIdentifiers | GetPaymentExtraIdentifiers | Partner’s identifiers |
TotalPrice | decimal | The total price that the customer has to pay. |
CreatedUtc | DateTime | UTC time of purchase creations |
ExpiredUtc | DateTime | UTC time of purchase expiration |
CheckoutSite | GetPaymentCheckoutSite | Checkout site information |
Mode | PurchaseMode | Selected purchase mode (B2B/B2C) |
B2C | GetPaymentB2CState | |
B2B | GetPaymentB2BState | |
CardPaymentState | CardState | Information about card payment |
PaymentMethods | GetPaymentFormPayments | Information about Payment methods |
AuthenticationType | AuthenticationType | Type of third party autherntication |
CustomerBalance | decimal | CustomerBalance |
Each individual Purchase changes its state during a Check-Out session. The following diagram shows valid transitions between the states:
The enumeration describes the state of a single Purchase. Please refer to the diagram in the Purchase States chapter to see possible transitions between states.
There are different checkout flow for B2B and B2C purchase mode.
Name | Value | Description |
Initialized | 0 | The session has been initialized by a back-end call made by the merchant but the form have not been rendered yet. |
EmailZipEntry | 1 | The customer is filling-in either the email or ZIP. |
SsnEntry | 2 | The customer has entered both email and ZIP but it turned out that we also need to know the SSN. |
PhoneNumberEntry | 3 | Phone number is the 4th thing to ask for (after email, ZIP and SSN) unless it is a known customer. |
PhoneNumberEntryForKnownCustomer | 14 | Customer was loaded in past steps but without phone. So in this step, we should get only phone value |
PersonalInfoWithoutSsn | 15 | Step for flow without social security number |
PersonalInfo | 4 | Step for fill in customer info |
WaitingForSwish | 5 | Waiting for response from Swish application |
RedirectedToDirectPaymentBank | 6 | The customer has been redirected to a Finnish bank for a direct payment |
RedirectedToNets | 7 | The customer has been redirected to a card payment provider. |
WaitingForBankId | 8 | Waiting for response from BankId application |
RedirectedToTupas | 9 | The customer has been redirected to a Signicat |
Completed | 10 | The CheckOut has been successfully completed |
TimedOut | 11 | The session is timed out |
HandledByMerchant | 12 | The customer has initiated an external payment method |
AwaitingCreditApproval | 13 | Waiting for Credit approval from merchant |
RedirectedToNetsEident | 17 | The customer has been redirected to a Nets E-ident provider |
Canceled | 16 | The purchase is cancelled |
RedirectedToVipps | 21 | The customer has been redirected to Vipps |
Name | Value | Description |
Initialized | 0 | The session has been initialized by a back-end call made by the merchant but the form have not been rendered yet. |
EnterCompanyInfo | 1 | The customer is company information (email, zip, company SSN, customer SSN) step. |
CompanyAddressInfo | 3 | Step for fill in customer info |
WaitingForSwish | 12 | Waiting for response from Swish application |
RedirectedToDirectPaymentBank | 10 | The customer has been redirected to a Finnish bank for a direct payment |
RedirectedToNets | 11 | The customer has been redirected to a card payment provider. |
WaitingForBankId | 8 | Waiting for response from BankId application |
RedirectedToTupas | 5 | The customer has been redirected to a Signicat |
Completed | 9 | The CheckOut has been successfully completed |
HandledByMerchant | 13 | The customer has initiated an external payment method |
TimedOut | 14 | The session is timed out |
Canceled | 15 | The purchase is cancelled |
RedirectedToNetsEident | 16 | The customer has been redirected to a Nets E-ident provider |
RedirectedToVipps | 18 | The customer has been redirected to Vipps |