-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtamara-in-store-checkout-api-openapi.yml
More file actions
237 lines (230 loc) · 5.77 KB
/
Copy pathtamara-in-store-checkout-api-openapi.yml
File metadata and controls
237 lines (230 loc) · 5.77 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
openapi: 3.0.3
info:
title: Tamara Channel Partners Captures In-Store Checkout API
description: 'Allow payment service providers, platforms, and aggregators to onboard merchants onto
Tamara on their behalf. Submit merchant KYB/KYC information, retrieve onboarding
status and merchant API keys, and register onboarding event webhooks.
'
version: 1.0.0
contact:
name: Tamara Partner Support
url: https://docs.tamara.co/
servers:
- url: https://partner-api.tamara.co
description: Production
- url: https://partner-api-sandbox.tamara.co
description: Sandbox
tags:
- name: In-Store Checkout
paths:
/checkout/in-store-session:
post:
operationId: createInStoreSmsSession
summary: Create In-Store SMS Payment Link Checkout Session
description: 'Create an in-store checkout session and SMS a Tamara payment link to the supplied
consumer phone number. Returns a `checkout_id`, `order_id`, and `checkout_deeplink`.
'
tags:
- In-Store Checkout
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InStoreSmsRequest'
responses:
'200':
description: Session created.
content:
application/json:
schema:
$ref: '#/components/schemas/InStoreSessionResponse'
/checkout/in-store:
post:
operationId: createInStoreQrSession
summary: Create In-Store QR Code Checkout Session
description: 'Create an in-store checkout deeplink that can be rendered as a QR code for the
consumer to scan in-store with the Tamara app.
'
tags:
- In-Store Checkout
security:
- bearerAuth: []
parameters:
- name: X-Device-Id
in: header
required: true
schema:
type: string
description: POS device identifier.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InStoreQrRequest'
responses:
'200':
description: Session created.
content:
application/json:
schema:
$ref: '#/components/schemas/InStoreSessionResponse'
/checkout/{checkout_id}/void:
post:
operationId: voidCheckoutSession
summary: Void Checkout Session
description: Void an in-store checkout session before the consumer completes the payment.
tags:
- In-Store Checkout
security:
- bearerAuth: []
parameters:
- name: checkout_id
in: path
required: true
schema:
type: string
- name: order_id
in: query
required: true
schema:
type: string
format: uuid
- name: store_code
in: query
required: false
schema:
type: string
responses:
'200':
description: Void result.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: success
captured_amount:
$ref: '#/components/schemas/Money'
components:
schemas:
Item:
type: object
properties:
reference_id:
type: string
type:
type: string
name:
type: string
sku:
type: string
quantity:
type: integer
total_amount:
$ref: '#/components/schemas/Money'
InStoreSmsRequest:
type: object
required:
- total_amount
- phone_number
- order_reference_id
- items
properties:
total_amount:
$ref: '#/components/schemas/Money'
phone_number:
type: string
order_reference_id:
type: string
order_number:
type: string
email:
type: string
locale:
type: string
enum:
- ar_SA
- en_US
payment_type:
type: string
enum:
- PAY_BY_INSTALMENTS
- PAY_NOW
expires_in_minutes:
type: integer
minimum: 5
maximum: 1440
default: 15
items:
type: array
items:
$ref: '#/components/schemas/Item'
additional_data:
type: object
properties:
store_code:
type: string
Money:
type: object
required:
- amount
- currency
properties:
amount:
type: number
currency:
type: string
enum:
- SAR
- AED
- BHD
- KWD
- OMR
InStoreQrRequest:
type: object
required:
- amount
- platform
properties:
amount:
$ref: '#/components/schemas/Money'
order_reference_id:
type: string
order_number:
type: string
platform:
type: string
description: Identifier for the POS or QR partner platform.
example: PARTNERNAME_POS_QR
locale:
type: string
enum:
- ar_SA
- en_US
additional_data:
type: object
properties:
store_code:
type: string
InStoreSessionResponse:
type: object
properties:
checkout_id:
type: string
format: uuid
order_id:
type: string
format: uuid
checkout_deeplink:
type: string
format: uri
securitySchemes:
bearerAuth:
type: http
scheme: bearer