@tapayadot/accept-react-native 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,12 +2,21 @@ package com.tapaya.acceptsdkreactnative
2
2
 
3
3
  import android.util.Base64
4
4
  import com.google.gson.Gson
5
- import com.tapaya.accept.AcceptSDK
5
+ import com.tapaya.accept.Accept
6
+ import com.tapaya.accept.AcceptDemoApi
6
7
  import com.tapaya.accept.external.IdentityData
8
+ import com.tapaya.core.model.external.AcceptEnvironment
9
+ import com.tapaya.core.model.external.AcceptUiBehavior
7
10
  import com.tapaya.core.model.external.BusinessType
8
11
  import com.tapaya.core.model.external.Currency
9
- import com.tapaya.core.model.external.exception.AcceptSDKException
12
+ import com.tapaya.core.model.external.NfcIndicator
13
+ import com.tapaya.core.model.external.NfcPosition
14
+ import com.tapaya.core.model.external.NfcZone
15
+ import com.tapaya.core.model.external.PaymentMethod
16
+ import com.tapaya.core.model.external.RefundReason
17
+ import com.tapaya.core.model.external.exception.AcceptException
10
18
  import com.tapaya.core.model.external.intent.CardChargeIntent
19
+ import com.tapaya.core.model.external.intent.CardRefundIntent
11
20
  import com.tapaya.core.model.external.intent.CertisInstantPaymentIntent
12
21
  import com.tapaya.core.model.external.intent.SepaInstantPaymentIntent
13
22
  import com.tapaya.core.model.external.result.AbstractPaymentResult
@@ -36,7 +45,7 @@ class CardPaymentIntentReactNative : Record {
36
45
  var paymentIntentId: String = ""
37
46
 
38
47
  @Field
39
- var amount: Int = 0
48
+ var amount: Long = 0L
40
49
 
41
50
  @Field
42
51
  var requestedCurrency: String = ""
@@ -71,7 +80,7 @@ class CardPaymentResultReactNative(
71
80
  @Field
72
81
  var companyCity: String = "",
73
82
  @Field
74
- var companyCountry: Int = 0,
83
+ var companyCountry: String = "",
75
84
  @Field
76
85
  var terminalId: String = "",
77
86
  @Field
@@ -83,6 +92,8 @@ class CardPaymentResultReactNative(
83
92
  @Field
84
93
  var receiptUrl: String? = null,
85
94
  @Field
95
+ var refundToken: String? = null,
96
+ @Field
86
97
  var type: String = "",
87
98
  ) : Record
88
99
 
@@ -95,12 +106,13 @@ fun CardPaymentResult.toReactNative(): CardPaymentResultReactNative {
95
106
  companyAddress1 = companyAddress1 ?: "",
96
107
  companyAddress2 = companyAddress2 ?: "",
97
108
  companyCity = companyCity ?: "",
98
- companyCountry = companyCountry ?: 0,
109
+ companyCountry = companyCountry.toCountryAlpha2(),
99
110
  terminalId = terminalId ?: "",
100
111
  authorizationCode = authorizationCode ?: "",
101
112
  brand = brand?.name ?: "",
102
113
  reason = reason?.name ?: "",
103
114
  receiptUrl = receiptUrl,
115
+ refundToken = refundToken,
104
116
  type = "card"
105
117
  )
106
118
  }
@@ -110,7 +122,7 @@ class SepaPaymentIntentReactNative : Record {
110
122
  var paymentIntentId: String = ""
111
123
 
112
124
  @Field
113
- var amount: Int = 0
125
+ var amount: Long = 0L
114
126
 
115
127
  @Field
116
128
  var requestedCurrency: String = ""
@@ -160,7 +172,7 @@ class CertisPaymentIntentReactNative : Record {
160
172
  var paymentIntentId: String = ""
161
173
 
162
174
  @Field
163
- var amount: Int = 0
175
+ var amount: Long = 0L
164
176
 
165
177
  @Field
166
178
  var requestedCurrency: String = ""
@@ -205,6 +217,26 @@ fun CertisInstantPaymentResult.toReactNative(): CertisPaymentInstantResultReactN
205
217
  )
206
218
  }
207
219
 
220
+ class RefundIntentReactNative : Record {
221
+ @Field
222
+ var paymentToken: String = ""
223
+
224
+ @Field
225
+ var refundToken: String? = null
226
+
227
+ @Field
228
+ var reason: String = "customerRequest"
229
+ }
230
+
231
+ class RefundResultReactNative(
232
+ @Field
233
+ var refundToken: String? = null,
234
+ @Field
235
+ var status: String = "",
236
+ @Field
237
+ var refundReason: String = "",
238
+ ) : Record
239
+
208
240
 
209
241
  class GradientColorsRecord : Record {
210
242
  @Field var start: String = ""
@@ -246,13 +278,23 @@ class AcceptImageThemeRecord : Record {
246
278
  }
247
279
 
248
280
  class AcceptThemeConfigurationRecord : Record {
281
+ @Field var themeId: String? = null
249
282
  @Field var colors: AcceptColorThemeRecord? = null
250
283
  @Field var images: AcceptImageThemeRecord? = null
251
284
 
252
- fun toAcceptThemeConfiguration(): AcceptThemeConfiguration = AcceptThemeConfiguration(
253
- colors = colors?.let { AcceptThemeSource.Local(it.toAcceptColorTheme()) } ?: AcceptThemeSource.Default,
254
- images = images?.let { AcceptThemeSource.Local(it.toAcceptImageTheme()) } ?: AcceptThemeSource.Default,
255
- )
285
+ @OptIn(AcceptDemoApi::class)
286
+ fun toAcceptThemeConfiguration(): AcceptThemeConfiguration {
287
+ themeId?.let { id ->
288
+ return AcceptThemeConfiguration(
289
+ colors = AcceptThemeSource.ById(id),
290
+ images = AcceptThemeSource.ById(id),
291
+ )
292
+ }
293
+ return AcceptThemeConfiguration(
294
+ colors = colors?.let { AcceptThemeSource.Local(it.toAcceptColorTheme()) } ?: AcceptThemeSource.Default,
295
+ images = images?.let { AcceptThemeSource.Local(it.toAcceptImageTheme()) } ?: AcceptThemeSource.Default,
296
+ )
297
+ }
256
298
  }
257
299
 
258
300
  private fun String.toComposeColor(): androidx.compose.ui.graphics.Color = try {
@@ -261,6 +303,122 @@ private fun String.toComposeColor(): androidx.compose.ui.graphics.Color = try {
261
303
  throw Exception("ThemeError: invalid color '$this'. Expected #RRGGBB or #AARRGGBB — ${e.message}")
262
304
  }
263
305
 
306
+ private fun Int?.toCountryAlpha2(): String = when (this) {
307
+ 8 -> "AL"
308
+ 20 -> "AD"
309
+ 40 -> "AT"
310
+ 51 -> "AM"
311
+ 56 -> "BE"
312
+ 70 -> "BA"
313
+ 100 -> "BG"
314
+ 112 -> "BY"
315
+ 191 -> "HR"
316
+ 196 -> "CY"
317
+ 203 -> "CZ"
318
+ 208 -> "DK"
319
+ 233 -> "EE"
320
+ 234 -> "FO"
321
+ 246 -> "FI"
322
+ 250 -> "FR"
323
+ 268 -> "GE"
324
+ 276 -> "DE"
325
+ 292 -> "GI"
326
+ 300 -> "GR"
327
+ 304 -> "GL"
328
+ 336 -> "VA"
329
+ 348 -> "HU"
330
+ 352 -> "IS"
331
+ 372 -> "IE"
332
+ 380 -> "IT"
333
+ 398 -> "KZ"
334
+ 417 -> "KG"
335
+ 428 -> "LV"
336
+ 438 -> "LI"
337
+ 440 -> "LT"
338
+ 442 -> "LU"
339
+ 470 -> "MT"
340
+ 492 -> "MC"
341
+ 498 -> "MD"
342
+ 499 -> "ME"
343
+ 528 -> "NL"
344
+ 578 -> "NO"
345
+ 616 -> "PL"
346
+ 620 -> "PT"
347
+ 642 -> "RO"
348
+ 643 -> "RU"
349
+ 674 -> "SM"
350
+ 688 -> "RS"
351
+ 703 -> "SK"
352
+ 705 -> "SI"
353
+ 724 -> "ES"
354
+ 752 -> "SE"
355
+ 756 -> "CH"
356
+ 792 -> "TR"
357
+ 804 -> "UA"
358
+ 807 -> "MK"
359
+ 826 -> "GB"
360
+ else -> ""
361
+ }
362
+
363
+ private fun String.toPaymentMethod(): PaymentMethod = when (this) {
364
+ "CARD" -> PaymentMethod.CARD
365
+ "SEPA" -> PaymentMethod.SEPA_INST
366
+ "CERTIS" -> PaymentMethod.CERTIS
367
+ "CRYPTO" -> PaymentMethod.CRYPTO
368
+ else -> throw IllegalArgumentException("Unknown payment method: $this")
369
+ }
370
+
371
+ private fun PaymentMethod.toJsString(): String = when (this) {
372
+ PaymentMethod.CARD -> "CARD"
373
+ PaymentMethod.SEPA_INST -> "SEPA"
374
+ PaymentMethod.CERTIS -> "CERTIS"
375
+ PaymentMethod.CRYPTO -> "CRYPTO"
376
+ }
377
+
378
+ private fun String.toRefundReason(): RefundReason = when (this) {
379
+ "customerRequest" -> RefundReason.CUSTOMER_REQUEST
380
+ "duplicate" -> RefundReason.DUPLICATE
381
+ "fraudulent" -> RefundReason.FRAUDULENT
382
+ "expiredCharge" -> RefundReason.EXPIRED_CHARGE
383
+ else -> throw IllegalArgumentException("Unknown refund reason: $this")
384
+ }
385
+
386
+ class NfcPositionRecord : Record {
387
+ @Field var xBias: Float = 0f
388
+ @Field var yBias: Float = 0f
389
+ }
390
+
391
+ class NfcZoneRecord : Record {
392
+ @Field var indicator: String = "DEFAULT"
393
+ @Field var position: NfcPositionRecord? = null
394
+
395
+ fun toNfcZone(): NfcZone {
396
+ val pos = position?.let { NfcPosition.Custom(it.xBias, it.yBias) } ?: NfcPosition.Default
397
+ return NfcZone(indicator = indicator.toNfcIndicator(), position = pos)
398
+ }
399
+ }
400
+
401
+ class AcceptUiBehaviorRecord : Record {
402
+ @Field var resultScreenDurationSeconds: Int = 10
403
+ @Field var showResultScreen: Boolean = true
404
+ @Field var nfcZone: NfcZoneRecord? = null
405
+
406
+ fun toAcceptUiBehavior(): AcceptUiBehavior = AcceptUiBehavior(
407
+ resultScreenDurationSeconds = resultScreenDurationSeconds,
408
+ showResultScreen = showResultScreen,
409
+ nfcZone = nfcZone?.toNfcZone(),
410
+ )
411
+ }
412
+
413
+ private fun String.toNfcIndicator(): NfcIndicator = when (this) {
414
+ "DEFAULT" -> NfcIndicator.DEFAULT
415
+ "ABOVE" -> NfcIndicator.ABOVE
416
+ "BELOW" -> NfcIndicator.BELOW
417
+ "FRONT" -> NfcIndicator.FRONT
418
+ "BEHIND" -> NfcIndicator.BEHIND
419
+ else -> throw IllegalArgumentException("Unknown NFC indicator: $this")
420
+ }
421
+
264
422
  class KybPrefillDataRecord : Record {
265
423
  @Field var businessType: String? = null
266
424
  @Field var countryCode: String? = null
@@ -314,17 +472,22 @@ class AcceptSdkReactNativeModule : Module() {
314
472
 
315
473
  AsyncFunction("initialize") Coroutine { demo: Boolean, theme: AcceptThemeConfigurationRecord? ->
316
474
  val context = appContext.reactContext ?: throw Exception("Context not available")
317
- AcceptSDK.initialize(context, demo, theme?.toAcceptThemeConfiguration() ?: AcceptThemeConfiguration.Default)
475
+ val environment = if (demo) AcceptEnvironment.SANDBOX else AcceptEnvironment.PRODUCTION
476
+ Accept.initialize(context, environment, theme?.toAcceptThemeConfiguration() ?: AcceptThemeConfiguration.Default)
318
477
  }
319
478
 
320
479
  AsyncFunction("setTheme") Coroutine { theme: AcceptThemeConfigurationRecord ->
321
- AcceptSDK.setThemeConfiguration(theme.toAcceptThemeConfiguration())
480
+ Accept.setThemeConfiguration(theme.toAcceptThemeConfiguration())
481
+ }
482
+
483
+ AsyncFunction("setUiBehavior") { behavior: AcceptUiBehaviorRecord ->
484
+ Accept.setUiBehavior(behavior.toAcceptUiBehavior())
322
485
  }
323
486
 
324
487
  AsyncFunction("authenticate") Coroutine { token: String ->
325
488
  return@Coroutine suspendCancellableCoroutine<Boolean> { continuation ->
326
489
  try {
327
- AcceptSDK.authenticate(
490
+ Accept.authenticate(
328
491
  token,
329
492
  onSuccess = { continuation.resume(true) },
330
493
  onError = { error -> (error as? Throwable)?.let { continuation.resumeWithException(it) } }
@@ -337,7 +500,7 @@ class AcceptSdkReactNativeModule : Module() {
337
500
 
338
501
  Function("getStatus") { ->
339
502
  try {
340
- return@Function AcceptSDK.status.name
503
+ return@Function Accept.status.name
341
504
  } catch (e: Exception) {
342
505
  throw e
343
506
  }
@@ -346,7 +509,7 @@ class AcceptSdkReactNativeModule : Module() {
346
509
  AsyncFunction("getPaymentStatus") Coroutine { paymentIntentId: String ->
347
510
  return@Coroutine suspendCancellableCoroutine<String> { continuation ->
348
511
  try {
349
- AcceptSDK.getPaymentStatus(
512
+ Accept.getPaymentStatus(
350
513
  paymentIntentId,
351
514
  { result: AbstractPaymentResult ->
352
515
  val mapped = when (result) {
@@ -358,7 +521,7 @@ class AcceptSdkReactNativeModule : Module() {
358
521
 
359
522
  continuation.resume(Gson().toJson(mapped))
360
523
  },
361
- { error: AcceptSDKException ->
524
+ { error: AcceptException ->
362
525
  (error as? Throwable)?.let { continuation.resumeWithException(it) }
363
526
  }
364
527
  )
@@ -386,7 +549,7 @@ class AcceptSdkReactNativeModule : Module() {
386
549
  AsyncFunction("logOut") Coroutine { ->
387
550
  return@Coroutine suspendCancellableCoroutine<Boolean> { continuation ->
388
551
  try {
389
- AcceptSDK.logOut {
552
+ Accept.logOut {
390
553
  continuation.resume(true)
391
554
  }
392
555
  } catch (e: Exception) {
@@ -397,20 +560,38 @@ class AcceptSdkReactNativeModule : Module() {
397
560
 
398
561
  AsyncFunction("isPaymentPending") { ->
399
562
  try {
400
- return@AsyncFunction AcceptSDK.isPaymentPending()
563
+ return@AsyncFunction Accept.isPaymentPending()
401
564
  } catch (e: Exception) {
402
565
  throw e
403
566
  }
404
567
  }
405
568
 
406
569
  AsyncFunction("presentKyb") Coroutine { prefilling: KybPrefillDataRecord? ->
407
- AcceptSDK.identity.presentKyb(prefilling?.toIdentityData())
570
+ Accept.identity.presentKyb(prefilling?.toIdentityData())
571
+ }
572
+
573
+ AsyncFunction("getOnboardingStatus") Coroutine { ->
574
+ val status = Accept.identity.getOnboardingStatus()
575
+ return@Coroutine mapOf(
576
+ "isOnboarded" to status.isOnboarded,
577
+ "paymentMethods" to status.paymentMethods.map { pm ->
578
+ mapOf(
579
+ "method" to pm.method.toJsString(),
580
+ "status" to pm.status.name,
581
+ )
582
+ },
583
+ )
584
+ }
585
+
586
+ AsyncFunction("getPaymentMethodStatus") Coroutine { method: String ->
587
+ val status = Accept.identity.getPaymentMethodStatus(method.toPaymentMethod())
588
+ return@Coroutine status.name
408
589
  }
409
590
 
410
591
  AsyncFunction("startCardPayment") Coroutine { paymentIntent: CardPaymentIntentReactNative ->
411
592
  return@Coroutine suspendCancellableCoroutine<CardPaymentResultReactNative> { continuation ->
412
593
  try {
413
- AcceptSDK.cardTerminal.process(
594
+ Accept.cardTerminal.process(
414
595
  paymentIntent.toCardInstantPaymentIntent(),
415
596
  onResult = {
416
597
  continuation.resume(it.toReactNative())
@@ -431,7 +612,7 @@ class AcceptSdkReactNativeModule : Module() {
431
612
  AsyncFunction("startSepaPayment") Coroutine { paymentIntent: SepaPaymentIntentReactNative ->
432
613
  return@Coroutine suspendCancellableCoroutine<SepaPaymentInstantResultReactNative> { continuation ->
433
614
  try {
434
- AcceptSDK.sepaTerminal.process(
615
+ Accept.sepaTerminal.process(
435
616
  paymentIntent.toSepaInstantPaymentIntent(),
436
617
  onResult = {
437
618
  continuation.resume(it.toReactNative())
@@ -452,7 +633,7 @@ class AcceptSdkReactNativeModule : Module() {
452
633
  AsyncFunction("startCertisPayment") Coroutine { paymentIntent: CertisPaymentIntentReactNative ->
453
634
  return@Coroutine suspendCancellableCoroutine<CertisPaymentInstantResultReactNative> { continuation ->
454
635
  try {
455
- AcceptSDK.certisTerminal.process(
636
+ Accept.certisTerminal.process(
456
637
  paymentIntent.toCertisInstantPaymentIntent(),
457
638
  onResult = {
458
639
  continuation.resume(it.toReactNative())
@@ -470,6 +651,57 @@ class AcceptSdkReactNativeModule : Module() {
470
651
  }
471
652
  }
472
653
 
654
+ AsyncFunction("refund") Coroutine { intent: RefundIntentReactNative ->
655
+ return@Coroutine suspendCancellableCoroutine<RefundResultReactNative> { continuation ->
656
+ try {
657
+ val refundIntent = CardRefundIntent(
658
+ sourcePaymentToken = intent.paymentToken,
659
+ refundReason = intent.reason.toRefundReason(),
660
+ refundToken = intent.refundToken,
661
+ )
662
+ Accept.cardTerminal.process(
663
+ refundIntent,
664
+ onResult = { result ->
665
+ continuation.resume(
666
+ RefundResultReactNative(
667
+ refundToken = result.refundToken,
668
+ status = result.status.name.lowercase(),
669
+ refundReason = intent.reason,
670
+ )
671
+ )
672
+ },
673
+ onStatus = { /* refund flow emits no UI status */ },
674
+ onError = { error ->
675
+ continuation.resumeWithException(error as Throwable)
676
+ }
677
+ )
678
+ } catch (e: Exception) {
679
+ continuation.resumeWithException(e)
680
+ }
681
+ }
682
+ }
683
+
684
+ AsyncFunction("cancelActivePayment") { ->
685
+ if (!Accept.isPaymentPending()) {
686
+ throw Exception("NoActivePayment")
687
+ }
688
+ Accept.cardTerminal.reset()
689
+ Accept.sepaTerminal.reset()
690
+ Accept.certisTerminal.reset()
691
+ }
692
+
693
+ AsyncFunction("enableDemoMode") { ->
694
+ Accept.enableDemoMode()
695
+ }
696
+
697
+ AsyncFunction("disableDemoMode") { ->
698
+ Accept.disableDemoMode()
699
+ }
700
+
701
+ AsyncFunction("isDemoMode") { ->
702
+ Accept.isDemoMode()
703
+ }
704
+
473
705
  AsyncFunction("pairWithCompanionApp") Coroutine { ->
474
706
  // Not available on Android
475
707
  }
@@ -484,7 +716,7 @@ class AcceptSdkReactNativeModule : Module() {
484
716
 
485
717
  }
486
718
 
487
- private fun AcceptSDKException.toReactNative(): Map<String, String> {
719
+ private fun AcceptException.toReactNative(): Map<String, String> {
488
720
  return mapOf(
489
721
  "message" to ((this as Throwable).message ?: ""),
490
722
  "exception" to ((this as Throwable).cause?.stackTraceToString() ?: "")
@@ -32,25 +32,60 @@ export type AcceptImageTheme = {
32
32
  };
33
33
  /**
34
34
  * UI theme overrides. Omit `colors` and/or `images` to keep SDK defaults for those slots.
35
+ *
36
+ * When `themeId` is set, the SDK loads a built-in preset theme (colors + images) by ID and
37
+ * ignores `colors`/`images`. Unknown IDs fall back to SDK defaults. Demo only.
35
38
  */
36
39
  export type AcceptThemeConfiguration = {
40
+ /** Preset theme ID. When set, overrides `colors` and `images`. Demo only. */
41
+ themeId?: string;
37
42
  colors?: AcceptColorTheme;
38
43
  images?: AcceptImageTheme;
39
44
  };
45
+ /** Where the NFC indicator is drawn relative to the tap zone. */
46
+ export type NfcIndicator = 'DEFAULT' | 'ABOVE' | 'BELOW' | 'FRONT' | 'BEHIND';
47
+ /**
48
+ * Position of the NFC tap zone on screen. Omit `position` from {@link NfcZone} to let the
49
+ * underlying terminal pick. Provide `{ xBias, yBias }` (each in `0..1`) for a manual position.
50
+ */
51
+ export type NfcPosition = {
52
+ /** Horizontal bias (0.0 = left, 1.0 = right). */
53
+ xBias: number;
54
+ /** Vertical bias (0.0 = top, 1.0 = bottom). */
55
+ yBias: number;
56
+ };
57
+ /** Overrides the Tap-to-Pay NFC zone shown over the card payment flow. */
58
+ export type NfcZone = {
59
+ indicator: NfcIndicator;
60
+ /** Omit to let the underlying terminal pick the position. */
61
+ position?: NfcPosition;
62
+ };
63
+ /**
64
+ * Configures SDK-owned UI behavior around a transaction.
65
+ *
66
+ * @property resultScreenDurationSeconds How long the post-transaction result screen stays on
67
+ * screen before auto-closing. Ignored when `showResultScreen` is `false`. Defaults to `10`.
68
+ * @property showResultScreen Whether the SDK shows its own result screen after a transaction
69
+ * completes. Defaults to `true`.
70
+ * @property nfcZone Overrides the Tap-to-Pay NFC indicator and tap zone position.
71
+ */
72
+ export type AcceptUiBehavior = {
73
+ resultScreenDurationSeconds?: number;
74
+ showResultScreen?: boolean;
75
+ nfcZone?: NfcZone;
76
+ };
40
77
  /** Current authentication/initialization state of the SDK. */
41
78
  export type SdkStatus = 'IDLE' | 'INITIALIZED' | 'LOGGED_IN';
42
- /** Supported settlement and requested currencies. */
43
- export type Currency = 'CZK' | 'EUR' | 'GBP';
44
79
  /** Intent for initiating a card (tap-to-pay) payment. */
45
80
  export type CardPaymentIntent = {
46
81
  /** Unique payment intent identifier obtained from your backend. */
47
82
  paymentIntentId: string;
48
83
  /** Amount in the smallest currency unit (e.g. hellers for CZK, cents for EUR). */
49
84
  amount: number;
50
- /** Currency the customer is charged in. */
51
- requestedCurrency: Currency;
52
- /** Currency funds settle in. Defaults to `requestedCurrency` when omitted. */
53
- settlementCurrency?: Currency;
85
+ /** ISO 4217 alpha-3 currency code the customer is charged in. */
86
+ requestedCurrency: string;
87
+ /** ISO 4217 alpha-3 currency code funds settle in. Defaults to `requestedCurrency` when omitted. */
88
+ settlementCurrency?: string;
54
89
  };
55
90
  /** Intent for initiating a SEPA Instant bank transfer payment. */
56
91
  export type SepaPaymentIntent = {
@@ -58,10 +93,10 @@ export type SepaPaymentIntent = {
58
93
  paymentIntentId: string;
59
94
  /** Amount in the smallest currency unit. */
60
95
  amount: number;
61
- /** Currency the customer is charged in. */
62
- requestedCurrency: Currency;
63
- /** Currency funds settle in. Defaults to `requestedCurrency` when omitted. */
64
- settlementCurrency?: Currency;
96
+ /** ISO 4217 alpha-3 currency code the customer is charged in. */
97
+ requestedCurrency: string;
98
+ /** ISO 4217 alpha-3 currency code funds settle in. Defaults to `requestedCurrency` when omitted. */
99
+ settlementCurrency?: string;
65
100
  };
66
101
  /** Intent for initiating a Certis Instant bank transfer payment. */
67
102
  export type CertisPaymentIntent = {
@@ -69,10 +104,10 @@ export type CertisPaymentIntent = {
69
104
  paymentIntentId: string;
70
105
  /** Amount in the smallest currency unit. */
71
106
  amount: number;
72
- /** Currency the customer is charged in. */
73
- requestedCurrency: Currency;
74
- /** Currency funds settle in. Defaults to `requestedCurrency` when omitted. */
75
- settlementCurrency?: Currency;
107
+ /** ISO 4217 alpha-3 currency code the customer is charged in. */
108
+ requestedCurrency: string;
109
+ /** ISO 4217 alpha-3 currency code funds settle in. Defaults to `requestedCurrency` when omitted. */
110
+ settlementCurrency?: string;
76
111
  };
77
112
  /** Result of a completed card payment. */
78
113
  export type CardPaymentResult = {
@@ -85,7 +120,8 @@ export type CardPaymentResult = {
85
120
  companyAddress1?: string;
86
121
  companyAddress2?: string;
87
122
  companyCity?: string;
88
- companyCountry?: number;
123
+ /** ISO 3166-1 alpha-2 country code (e.g. `CZ`, `SK`, `GB`). */
124
+ companyCountry?: string;
89
125
  terminalId?: string;
90
126
  authorizationCode?: string;
91
127
  /** Card brand (e.g. `VISA`, `MASTERCARD`). */
@@ -94,6 +130,8 @@ export type CardPaymentResult = {
94
130
  reason?: string;
95
131
  /** URL to the digital receipt for this transaction. */
96
132
  receiptUrl?: string;
133
+ /** Server-issued token identifying a refund applied to this payment. Present when this card payment was refunded. */
134
+ refundToken?: string;
97
135
  };
98
136
  /** Intermediate status updates emitted during a card payment flow. */
99
137
  export type CardPaymentStatus = 'pending' | 'approved' | 'declined' | 'refunded' | 'aborted';
@@ -151,6 +189,65 @@ export type KybPrefillData = {
151
189
  productDescription?: string;
152
190
  supportPhone?: string;
153
191
  };
192
+ /** Supported payment methods for onboarding status queries. */
193
+ export type PaymentMethod = 'CARD' | 'SEPA' | 'CERTIS' | 'CRYPTO';
194
+ /** Onboarding state for a single payment method. */
195
+ export type PaymentMethodStatus = 'NOT_STARTED' | 'PENDING' | 'ACTIVE' | 'ATTENTION_NEEDED' | 'ACTION_REQUIRED' | 'BLOCKED';
196
+ /** Per-method onboarding status entry. */
197
+ export type AcceptPaymentMethodStatus = {
198
+ method: PaymentMethod;
199
+ status: PaymentMethodStatus;
200
+ };
201
+ /** Aggregate onboarding status for the authenticated merchant. */
202
+ export type AcceptOnboardingStatus = {
203
+ /** `true` when the merchant has completed onboarding for at least one payment method. */
204
+ isOnboarded: boolean;
205
+ /** Per-method onboarding status entries. */
206
+ paymentMethods: AcceptPaymentMethodStatus[];
207
+ };
208
+ /** Reason a card refund is issued. */
209
+ export type RefundReason = 'customerRequest' | 'duplicate' | 'fraudulent' | 'expiredCharge';
210
+ /** Final state of a refund transaction. */
211
+ export type TransactionStatus = 'pending' | 'success' | 'cancelled' | 'refunded' | 'failed' | 'actionNeeded';
212
+ /** Arguments for {@link payments.refund}. */
213
+ export type RefundIntent = {
214
+ /** Token of the source payment to refund. Accepts the server payment UUID or the original charge's `paymentIntentId`. */
215
+ paymentToken: string;
216
+ /** Optional client-provided idempotency token. Pass the same value across retries to avoid duplicate refunds. */
217
+ refundToken?: string;
218
+ /** Reason for the refund. */
219
+ reason: RefundReason;
220
+ };
221
+ /**
222
+ * Result of a refund request.
223
+ *
224
+ * On iOS this is fully populated. On Android only `status` and `refundToken` are populated —
225
+ * call {@link getPaymentStatus} on the source payment for richer state.
226
+ */
227
+ export type RefundResult = {
228
+ /** Server-generated refund token. May be undefined on Android. */
229
+ refundToken?: string;
230
+ /** Status of the refund transaction. */
231
+ status: TransactionStatus;
232
+ /** Payment method of the original transaction. iOS only. */
233
+ paymentMethod?: PaymentMethod;
234
+ /** Refund amount in the smallest unit of the requested currency. iOS only. */
235
+ requestedAmount?: number;
236
+ /** ISO 4217 alpha-3 code of the requested currency. iOS only. */
237
+ requestedCurrency?: string;
238
+ /** Refund amount in the smallest unit of the settlement currency. iOS only. */
239
+ settlementAmount?: number;
240
+ /** ISO 4217 alpha-3 code of the settlement currency. iOS only. */
241
+ settlementCurrency?: string;
242
+ /** Conversion rate from requested currency to settlement currency. iOS only. */
243
+ fxRate?: number;
244
+ /** Reason for the refund. */
245
+ refundReason: RefundReason;
246
+ /** ISO 8601 UTC timestamp when the refund was initiated. iOS only. */
247
+ createdAt?: string;
248
+ /** ISO 8601 UTC timestamp when the refund was processed. iOS only. */
249
+ processedAt?: string;
250
+ };
154
251
  export type AcceptSdkReactNativeModuleEvents = {
155
252
  onCardPaymentStatusChange: (status: Map<string, string>) => void;
156
253
  onSepaPaymentStatusChange: (status: Map<string, string>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AcceptSdkReactNative.types.d.ts","sourceRoot":"","sources":["../src/AcceptSdkReactNative.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcceptSdkReactNative.types.d.ts","sourceRoot":"","sources":["../src/AcceptSdkReactNative.types.ts"],"names":[],"mappings":"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"}