Finalise
Finialisation involves making API calls, displaying the transaction status, and responding to HTTP callbacks.
Flow Diagram
%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
autonumber
actor u as User
participant b as Browser
participant cs as Customer Server
participant dt1 as DT One
u->>+b: Open customer's webpage
note over u, dt1: UI SDK initialized and the user selects and checkouts a product.
b->>cs: Payment Hook<br/>(Session ID extracted<br/>from Session Data, Payment Details)
activate cs
cs->>b: Render Payment Page
note over b, cs: Collect payment, finalise session and redirect<br/>to Transaction status view (Session ID)
note over b,dt1: The finalise session call should happen with 1 hour of payment hook
cs->>dt1: Finalise Session<br/>(Auth, Session ID, Payment Details)
activate dt1
dt1->>cs: Finalise Session Response
deactivate dt1
cs->>b: Render Transaction Status Page
deactivate cs
deactivate b
Steps
* URL: `/v1/sessions/{sessionID}/finalise`
* Method: `POST`
<Accordion title="Request Body" icon="fa-file-import">
```json
[
{
"transaction_id": 65430,
"price": {
"currency": "SGD",
"amount": 9.9
}
}
]
```
</Accordion>
<Accordion title="Response (200 OK)" icon="fa-file-export">
```json
[
{
"is_confirmed": true,
"transaction_id": 65430
}
]
```
</Accordion>
<Accordion title="Errors" icon="fa-exclamation-triangle">
* `400`: Bad Request
* `401`: Unauthorized
* `403`: Forbidden
* `404`: Not Found
* `500`: Server Error
</Accordion>
## <i class="fa fa-table"></i> Schemas
<Accordion title="SessionFinaliseRequest" icon="fa-code">
```json
{
"transaction_id": "integer",
"price": {
"amount": "number",
"currency": "ISO 4217 code"
}
]
```
</Accordion>
<Accordion title="SessionFinaliseResponse" icon="fa-code">
```json
{
"is_confirmed": true,
"transaction_id": "integer"
}
```
</Accordion>
## <i class="fa fa-file-code"></i> Example
The [`callbacks.onSubmit` function](/docs/configure-solution-behavior#callbacksonsubmit) passes a Transaction object (described here: [https://dvs-api-doc.dtone.com/#operation/getTransactionById](https://dvs-api-doc.dtone.com/#operation/getTransactionById)) and a sessionId in the function parameters. Extract the `transaction.id` from the transaction object.
<Accordion title="Examples" icon="fa-arrow-right-arrow-left">
```bash
# Request
curl --location --request POST '<domain>/v1/sessions/{sessionID}/finalise' \
--header 'Content-Type: application/json' \
--user <APIKey:APISecret> \
--data '[ { "transaction_id": 125757, "price": { "currency": "SGD", "amount": 21.613 } }]'
# Response
[ { "transaction_id": 125758, "is_confirmed": true }]
```
</Accordion>
Updated 3 months ago
Did this page help you?
