Skip to main content

PayUp Merchant Admin API (1.0.0)

Download OpenAPI specification:Download

Administrative API used by the PayUp merchant dashboard. All routes live under /api/merchant/v1.

Authentication

Except for the explicitly public endpoints (register, login, currency reads/conversion, and gateway request webhooks), every endpoint requires a merchant JWT passed as Authorization: Bearer <jwt>. Obtain the JWT from POST /auth/login or POST /auth/register.

Auth

Register a merchant user

Request Body schema: application/json
email
required
string <email>
password
required
string >= 8 characters
name
required
string non-empty
company
string

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "stringst",
  • "name": "string",
  • "company": "string"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "string"
}

Log in

Request Body schema: application/json
email
required
string <email>
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "string"
}

Get the current user profile

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "companyName": "string",
  • "isActive": true,
  • "paymentMode": "string",
  • "settings": { },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update the current user profile

Authorizations:
MerchantJwt
Request Body schema: application/json
name
string
companyName
string
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "companyName": "string",
  • "settings": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "companyName": "string",
  • "isActive": true,
  • "paymentMode": "string",
  • "settings": { },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Issue a fresh JWT

Requires a currently valid Bearer JWT.

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "string"
}

Get a compact profile summary for the dashboard

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{ }

Two-Factor Auth

Generate TOTP secret and QR code

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "qrCodeDataUrl": "string",
  • "secret": "string",
  • "message": "string"
}

Verify TOTP code and enable 2FA

Authorizations:
MerchantJwt
Request Body schema: application/json
code
required
string = 6 characters

Responses

Request samples

Content type
application/json
{
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "backupCodes": [
    ],
  • "warning": "string"
}

Disable 2FA (requires current password)

Authorizations:
MerchantJwt
Request Body schema: application/json
password
required
string

Responses

Request samples

Content type
application/json
{
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Complete 2FA challenge and issue JWT

Request Body schema: application/json
challengeToken
required
string
code
required
string [ 6 .. 8 ] characters
type
string
Default: "totp"
Enum: "totp" "backup"

Responses

Request samples

Content type
application/json
{
  • "challengeToken": "string",
  • "code": "string",
  • "type": "totp"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "string"
}

Generate new backup codes

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "backupCodes": [
    ],
  • "message": "string"
}

Get 2FA status for the current user

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "hasBackupCodes": true,
  • "backupCodesCount": 0
}

Passkeys

Generate WebAuthn registration options

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{ }

Verify passkey registration

Authorizations:
MerchantJwt
Request Body schema: application/json
challengeKey
required
string
required
object
deviceName
string

Responses

Request samples

Content type
application/json
{
  • "challengeKey": "string",
  • "response": { },
  • "deviceName": "string"
}

Response samples

Content type
application/json
{ }

Generate WebAuthn authentication options

Request Body schema: application/json
email
string <email>
challengeToken
string

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "challengeToken": "string"
}

Response samples

Content type
application/json
{ }

Verify passkey authentication and issue JWT

Request Body schema: application/json
challengeKey
required
string
required
object

Responses

Request samples

Content type
application/json
{
  • "challengeKey": "string",
  • "response": { }
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "string"
}

List passkeys for the current user

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "passkeys": [
    ]
}

Delete a passkey

Authorizations:
MerchantJwt
path Parameters
credentialId
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Password

Request a password reset email

Request Body schema: application/json
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{ }

Reset password with token

Request Body schema: application/json
token
required
string
password
required
string >= 8 characters
confirmPassword
required
string >= 8 characters

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "password": "stringst",
  • "confirmPassword": "stringst"
}

Response samples

Content type
application/json
{ }

Validate a password reset token

Request Body schema: application/json
token
required
string

Responses

Request samples

Content type
application/json
{
  • "token": "string"
}

Response samples

Content type
application/json
{ }

OAuth

Redirect to OAuth provider authorization page

path Parameters
provider
required
string
Example: google

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "message": "string"
}

Handle OAuth provider callback

path Parameters
provider
required
string
query Parameters
code
string
state
string
error
string

Responses

User Settings

Get account settings

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Update account settings

Authorizations:
MerchantJwt
Request Body schema: application/json
object (UserSecuritySettings)
object (UserNotificationSettings)
object (UserDisplaySettings)
object (UserPrivacySettings)

Responses

Request samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Update security settings group

Authorizations:
MerchantJwt
Request Body schema: application/json
twoFactorMethod
string
Enum: "totp" "passkey" "none"
requireTwoFactorForPayments
boolean
sessionTimeout
integer >= 1
loginNotifications
boolean
allowedIPs
Array of strings
rememberDevices
boolean
maxActiveSessions
integer >= 1

Responses

Request samples

Content type
application/json
{
  • "twoFactorMethod": "totp",
  • "requireTwoFactorForPayments": true,
  • "sessionTimeout": 1,
  • "loginNotifications": true,
  • "allowedIPs": [
    ],
  • "rememberDevices": true,
  • "maxActiveSessions": 1
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Update notification preferences group

Authorizations:
MerchantJwt
Request Body schema: application/json
emailOnPaymentReceived
boolean
emailOnPaymentFailed
boolean
emailOnNewCustomer
boolean
emailOnGatewayDown
boolean
emailOnSecurityAlert
boolean
weeklyReport
boolean
marketingEmails
boolean

Responses

Request samples

Content type
application/json
{
  • "emailOnPaymentReceived": true,
  • "emailOnPaymentFailed": true,
  • "emailOnNewCustomer": true,
  • "emailOnGatewayDown": true,
  • "emailOnSecurityAlert": true,
  • "weeklyReport": true,
  • "marketingEmails": true
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Update display settings group

Authorizations:
MerchantJwt
Request Body schema: application/json
theme
string
Enum: "light" "dark" "system"
primaryColor
string
language
string
timezone
string
dateFormat
string
numberFormat
string

Responses

Request samples

Content type
application/json
{
  • "theme": "light",
  • "primaryColor": "string",
  • "language": "string",
  • "timezone": "string",
  • "dateFormat": "string",
  • "numberFormat": "string"
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Update privacy settings group

Authorizations:
MerchantJwt
Request Body schema: application/json
showActivityLog
boolean
shareAnalytics
boolean

Responses

Request samples

Content type
application/json
{
  • "showActivityLog": true,
  • "shareAnalytics": true
}

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Reset all account settings to defaults

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Reset a settings group to defaults

Authorizations:
MerchantJwt
path Parameters
group
required
string
Enum: "security" "notifications" "display" "privacy"

Responses

Response samples

Content type
application/json
{
  • "security": {
    },
  • "notifications": {
    },
  • "display": {
    },
  • "privacy": {
    }
}

Profile

Get the current user profile

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "companyName": "string",
  • "isActive": true,
  • "paymentMode": "string",
  • "settings": { },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update the current user profile

Authorizations:
MerchantJwt
Request Body schema: application/json
name
string
company
string
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "company": "string",
  • "settings": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "companyName": "string",
  • "isActive": true,
  • "paymentMode": "string",
  • "settings": { },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List companies owned by the user

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a company

Authorizations:
MerchantJwt
Request Body schema: application/json
name
required
string
crNumber
required
string
vatNumber
string
country
required
string
city
required
string
address
required
string
postalCode
required
string
companyLogoMediaId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "crNumber": "string",
  • "vatNumber": "string",
  • "country": "string",
  • "city": "string",
  • "address": "string",
  • "postalCode": "string",
  • "companyLogoMediaId": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "crNumber": "string",
  • "vatNumber": "string",
  • "country": "string",
  • "city": "string",
  • "address": "string",
  • "postalCode": "string",
  • "companyLogoMediaId": "string",
  • "id": "string",
  • "userId": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get a company

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "crNumber": "string",
  • "vatNumber": "string",
  • "country": "string",
  • "city": "string",
  • "address": "string",
  • "postalCode": "string",
  • "companyLogoMediaId": "string",
  • "id": "string",
  • "userId": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a company

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
name
string
crNumber
string
vatNumber
string
country
string
city
string
address
string
postalCode
string
companyLogoMediaId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "crNumber": "string",
  • "vatNumber": "string",
  • "country": "string",
  • "city": "string",
  • "address": "string",
  • "postalCode": "string",
  • "companyLogoMediaId": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "crNumber": "string",
  • "vatNumber": "string",
  • "country": "string",
  • "city": "string",
  • "address": "string",
  • "postalCode": "string",
  • "companyLogoMediaId": "string",
  • "id": "string",
  • "userId": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a company

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Upload a company document

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: multipart/form-data
file
required
string <binary>
docType
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "crNumber": "string",
  • "vatNumber": "string",
  • "country": "string",
  • "city": "string",
  • "address": "string",
  • "postalCode": "string",
  • "companyLogoMediaId": "string",
  • "id": "string",
  • "userId": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Remove a company document

Authorizations:
MerchantJwt
path Parameters
id
required
string
docId
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "crNumber": "string",
  • "vatNumber": "string",
  • "country": "string",
  • "city": "string",
  • "address": "string",
  • "postalCode": "string",
  • "companyLogoMediaId": "string",
  • "id": "string",
  • "userId": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Apps

List the user's apps

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an app

Authorizations:
MerchantJwt
Request Body schema: application/json
name
required
string
description
string
webhookUrl
string or null <uri>
brandName
string
brandLogo
string or null <uri>
showProducts
boolean
showCurrencySelector
boolean
showTaxElement
boolean
showCustomerElement
boolean
showAddressElement
boolean
showShipping
boolean
showPayment
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "webhookUrl": "http://example.com",
  • "brandName": "string",
  • "brandLogo": "http://example.com",
  • "showProducts": true,
  • "showCurrencySelector": true,
  • "showTaxElement": true,
  • "showCustomerElement": true,
  • "showAddressElement": true,
  • "showShipping": true,
  • "showPayment": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "webhookUrl": "http://example.com",
  • "brandName": "string",
  • "brandLogo": "http://example.com",
  • "showProducts": true,
  • "showCurrencySelector": true,
  • "showTaxElement": true,
  • "showCustomerElement": true,
  • "showAddressElement": true,
  • "showShipping": true,
  • "showPayment": true,
  • "id": "string",
  • "userId": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List apps with minimal fields for the app switcher

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
[
  • { }
]

Paginated app list

Authorizations:
MerchantJwt
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string
isActive
string
Enum: "true" "false"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Paginated lite app list for dropdowns

Authorizations:
MerchantJwt
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "webhookUrl": "http://example.com",
  • "brandName": "string",
  • "brandLogo": "http://example.com",
  • "showProducts": true,
  • "showCurrencySelector": true,
  • "showTaxElement": true,
  • "showCustomerElement": true,
  • "showAddressElement": true,
  • "showShipping": true,
  • "showPayment": true,
  • "id": "string",
  • "userId": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
name
required
string
description
string
webhookUrl
string or null <uri>
brandName
string
brandLogo
string or null <uri>
showProducts
boolean
showCurrencySelector
boolean
showTaxElement
boolean
showCustomerElement
boolean
showAddressElement
boolean
showShipping
boolean
showPayment
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "webhookUrl": "http://example.com",
  • "brandName": "string",
  • "brandLogo": "http://example.com",
  • "showProducts": true,
  • "showCurrencySelector": true,
  • "showTaxElement": true,
  • "showCustomerElement": true,
  • "showAddressElement": true,
  • "showShipping": true,
  • "showPayment": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "webhookUrl": "http://example.com",
  • "brandName": "string",
  • "brandLogo": "http://example.com",
  • "showProducts": true,
  • "showCurrencySelector": true,
  • "showTaxElement": true,
  • "showCustomerElement": true,
  • "showAddressElement": true,
  • "showShipping": true,
  • "showPayment": true,
  • "id": "string",
  • "userId": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

App Settings

Get app settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Update app settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
object (AppBrandingSettings)
object (AppCheckoutSettings)
object (AppPaymentSettings)
object (AppNotificationSettings)
object (AppSecuritySettings)
object (AppIntegrationSettings)

Responses

Request samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Update app branding settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
primaryColor
string
secondaryColor
string
accentColor
string
fontFamily
string
borderRadius
string
logoPosition
string
Enum: "left" "center"

Responses

Request samples

Content type
application/json
{
  • "primaryColor": "string",
  • "secondaryColor": "string",
  • "accentColor": "string",
  • "fontFamily": "string",
  • "borderRadius": "string",
  • "logoPosition": "left"
}

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Update app checkout settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
showProducts
boolean
showCurrencySelector
boolean
showTaxElement
boolean
showCustomerElement
boolean
showAddressElement
boolean
showShipping
boolean
showPayment
boolean
requireCustomerVerification
boolean
verificationMethod
string
Enum: "email" "mobile" "both"
allowGuestCheckout
boolean
autoRedirectOnSuccess
boolean
successUrl
string
cancelUrl
string

Responses

Request samples

Content type
application/json
{
  • "showProducts": true,
  • "showCurrencySelector": true,
  • "showTaxElement": true,
  • "showCustomerElement": true,
  • "showAddressElement": true,
  • "showShipping": true,
  • "showPayment": true,
  • "requireCustomerVerification": true,
  • "verificationMethod": "email",
  • "allowGuestCheckout": true,
  • "autoRedirectOnSuccess": true,
  • "successUrl": "string",
  • "cancelUrl": "string"
}

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Update app payment settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
defaultCurrency
string
allowedCurrencies
Array of strings
minimumAmount
number >= 0
maximumAmount
number >= 0
autoCapture
boolean
refundPolicy
string
Enum: "full" "partial" "none"
refundWindow
number >= 0

Responses

Request samples

Content type
application/json
{
  • "defaultCurrency": "string",
  • "allowedCurrencies": [
    ],
  • "minimumAmount": 0,
  • "maximumAmount": 0,
  • "autoCapture": true,
  • "refundPolicy": "full",
  • "refundWindow": 0
}

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Update app notification settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
sendCustomerReceipt
boolean
sendMerchantAlert
boolean
webhookRetryAttempts
integer >= 0
webhookRetryInterval
integer >= 0

Responses

Request samples

Content type
application/json
{
  • "sendCustomerReceipt": true,
  • "sendMerchantAlert": true,
  • "webhookRetryAttempts": 0,
  • "webhookRetryInterval": 0
}

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Update app security settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
allowedDomains
Array of strings
enforceHttps
boolean
rateLimitPerMinute
integer >= 0
enableFraudDetection
boolean
blockVpn
boolean

Responses

Request samples

Content type
application/json
{
  • "allowedDomains": [
    ],
  • "enforceHttps": true,
  • "rateLimitPerMinute": 0,
  • "enableFraudDetection": true,
  • "blockVpn": true
}

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Update app integration settings

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
sdkVersion
string
apiVersion
string
testMode
boolean
debugMode
boolean

Responses

Request samples

Content type
application/json
{
  • "sdkVersion": "string",
  • "apiVersion": "string",
  • "testMode": true,
  • "debugMode": true
}

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Reset all app settings to defaults

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

Reset an app settings group to defaults

Authorizations:
MerchantJwt
path Parameters
appId
required
string
group
required
string
Enum: "branding" "checkout" "payment" "notifications" "security" "integration"

Responses

Response samples

Content type
application/json
{
  • "branding": {
    },
  • "checkout": {
    },
  • "payment": {
    },
  • "notifications": {
    },
  • "security": {
    },
  • "integration": {
    }
}

API Keys

List masked API keys for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Rotate the key pair for an environment

Authorizations:
MerchantJwt
path Parameters
appId
required
string
environment
required
string (Environment)
Enum: "sandbox" "live"

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "environment": "sandbox",
  • "publicKey": "string",
  • "secretKey": "string",
  • "secretKeyPrefix": "string",
  • "secretKeyLast4": "string"
}

Products

Create a product

Authorizations:
MerchantJwt
Request Body schema: application/json
appId
required
string
title
required
string
price
required
number > 0
sku
string
currency
string
description
string
media
Array of strings
category
string
compareAtPrice
number
unitPrice
number
chargeTax
boolean
costPerItem
number
status
string
Enum: "active" "draft" "archived"
quantity
integer
object
object
Array of objects
object

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "title": "string",
  • "price": 0,
  • "sku": "string",
  • "currency": "string",
  • "description": "string",
  • "media": [
    ],
  • "category": "string",
  • "compareAtPrice": 0,
  • "unitPrice": 0,
  • "chargeTax": true,
  • "costPerItem": 0,
  • "status": "active",
  • "quantity": 0,
  • "inventory": { },
  • "shipping": { },
  • "variants": [
    ],
  • "seo": { }
}

Response samples

Content type
application/json
{
  • "appId": "string",
  • "title": "string",
  • "price": 0,
  • "sku": "string",
  • "currency": "string",
  • "description": "string",
  • "media": [
    ],
  • "category": "string",
  • "compareAtPrice": 0,
  • "unitPrice": 0,
  • "chargeTax": true,
  • "costPerItem": 0,
  • "status": "active",
  • "quantity": 0,
  • "inventory": { },
  • "shipping": { },
  • "variants": [
    ],
  • "seo": { },
  • "id": "string",
  • "storeCode": "string",
  • "userId": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List products for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Paginated product list for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Paginated lite product list for dropdowns

Authorizations:
MerchantJwt
path Parameters
appId
required
string
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get a product

Authorizations:
MerchantJwt
path Parameters
productId
required
string

Responses

Response samples

Content type
application/json
{
  • "appId": "string",
  • "title": "string",
  • "price": 0,
  • "sku": "string",
  • "currency": "string",
  • "description": "string",
  • "media": [
    ],
  • "category": "string",
  • "compareAtPrice": 0,
  • "unitPrice": 0,
  • "chargeTax": true,
  • "costPerItem": 0,
  • "status": "active",
  • "quantity": 0,
  • "inventory": { },
  • "shipping": { },
  • "variants": [
    ],
  • "seo": { },
  • "id": "string",
  • "storeCode": "string",
  • "userId": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a product

Authorizations:
MerchantJwt
path Parameters
productId
required
string
Request Body schema: application/json
appId
required
string
title
required
string
price
required
number > 0
sku
string
currency
string
description
string
media
Array of strings
category
string
compareAtPrice
number
unitPrice
number
chargeTax
boolean
costPerItem
number
status
string
Enum: "active" "draft" "archived"
quantity
integer
object
object
Array of objects
object

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "title": "string",
  • "price": 0,
  • "sku": "string",
  • "currency": "string",
  • "description": "string",
  • "media": [
    ],
  • "category": "string",
  • "compareAtPrice": 0,
  • "unitPrice": 0,
  • "chargeTax": true,
  • "costPerItem": 0,
  • "status": "active",
  • "quantity": 0,
  • "inventory": { },
  • "shipping": { },
  • "variants": [
    ],
  • "seo": { }
}

Response samples

Content type
application/json
{
  • "appId": "string",
  • "title": "string",
  • "price": 0,
  • "sku": "string",
  • "currency": "string",
  • "description": "string",
  • "media": [
    ],
  • "category": "string",
  • "compareAtPrice": 0,
  • "unitPrice": 0,
  • "chargeTax": true,
  • "costPerItem": 0,
  • "status": "active",
  • "quantity": 0,
  • "inventory": { },
  • "shipping": { },
  • "variants": [
    ],
  • "seo": { },
  • "id": "string",
  • "storeCode": "string",
  • "userId": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a product

Authorizations:
MerchantJwt
path Parameters
productId
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Transactions

Payment session statistics

Authorizations:
MerchantJwt
query Parameters
appId
string
status
string
gateway
string
startDate
string <date-time>
endDate
string <date-time>

Responses

Response samples

Content type
application/json
{
  • "totalPayments": 0,
  • "completedPayments": 0,
  • "pendingPayments": 0,
  • "totalRevenue": 0,
  • "successRate": 0
}

Paginated payment session list

Authorizations:
MerchantJwt
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string
appId
string
status
string
gateway
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List payment sessions

Authorizations:
MerchantJwt
query Parameters
page
integer
Default: 1
limit
integer
Default: 50

Responses

Response samples

Content type
application/json
{
  • "sessions": [
    ],
  • "pagination": {
    }
}

Get payment session details

Authorizations:
MerchantJwt
path Parameters
sessionId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "sessionId": "string",
  • "amount": 0,
  • "currency": "string",
  • "customerEmail": "string",
  • "customerName": "string",
  • "products": [
    ],
  • "status": "string",
  • "gateway": "string",
  • "description": "string",
  • "redirectUrl": "string",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "completedAt": "2019-08-24T14:15:22Z",
  • "cancelledAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "returnUrl": "string",
  • "cancelUrl": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "providerPaymentId": "string",
  • "gatewayTransactionId": "string",
  • "error": { }
}

Customers

Create a customer

Authorizations:
MerchantJwt
Request Body schema: application/json
appId
required
string
firstName
string
lastName
string
email
string <email>
mobile
string
language
string
object
object
notes
string
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "language": "string",
  • "defaultAddress": { },
  • "marketingPreferences": { },
  • "notes": "string",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "appId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "language": "string",
  • "defaultAddress": { },
  • "marketingPreferences": { },
  • "notes": "string",
  • "tags": [
    ],
  • "id": "string",
  • "userId": "string",
  • "sessionIds": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List customers for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Paginated customer list for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get a customer

Authorizations:
MerchantJwt
path Parameters
customerId
required
string

Responses

Response samples

Content type
application/json
{
  • "appId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "language": "string",
  • "defaultAddress": { },
  • "marketingPreferences": { },
  • "notes": "string",
  • "tags": [
    ],
  • "id": "string",
  • "userId": "string",
  • "sessionIds": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a customer

Authorizations:
MerchantJwt
path Parameters
customerId
required
string
Request Body schema: application/json
appId
required
string
firstName
string
lastName
string
email
string <email>
mobile
string
language
string
object
object
notes
string
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "language": "string",
  • "defaultAddress": { },
  • "marketingPreferences": { },
  • "notes": "string",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "appId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "user@example.com",
  • "mobile": "string",
  • "language": "string",
  • "defaultAddress": { },
  • "marketingPreferences": { },
  • "notes": "string",
  • "tags": [
    ],
  • "id": "string",
  • "userId": "string",
  • "sessionIds": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a customer

Authorizations:
MerchantJwt
path Parameters
customerId
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Customer payment history

Authorizations:
MerchantJwt
path Parameters
customerId
required
string
query Parameters
page
integer
Default: 1
limit
integer
Default: 10

Responses

Response samples

Content type
application/json
{
  • "payments": [
    ],
  • "total": 0,
  • "page": 0,
  • "limit": 0,
  • "totalPages": 0
}

Gateways

List the global gateway catalog

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "gateways": [
    ]
}

List gateways with their available currencies

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "gateways": [
    ]
}

Paginated lite gateway catalog for dropdowns

Authorizations:
MerchantJwt
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List an app's configured gateways

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
{
  • "gateways": [
    ]
}

Configure a gateway for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string
Request Body schema: application/json
name
required
string
Enum: "paypal" "stripe" "moyasar" "myfatoorah"
required
object
defaultCurrency
string = 3 characters
acceptedCurrencies
Array of strings
isDefault
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "name": "paypal",
  • "config": { },
  • "defaultCurrency": "str",
  • "acceptedCurrencies": [
    ],
  • "isDefault": false
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "name": "string",
  • "config": { },
  • "defaultCurrency": "string",
  • "acceptedCurrencies": [
    ],
  • "isDefault": true,
  • "isActive": true
}

Paginated list of an app's configured gateways

Authorizations:
MerchantJwt
path Parameters
appId
required
string
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update an app gateway

Authorizations:
MerchantJwt
path Parameters
appId
required
string
gatewayId
required
string
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "name": "string",
  • "config": { },
  • "defaultCurrency": "string",
  • "acceptedCurrencies": [
    ],
  • "isDefault": true,
  • "isActive": true
}

Delete an app gateway

Authorizations:
MerchantJwt
path Parameters
appId
required
string
gatewayId
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Gateway Requests

List gateway onboarding requests

Authorizations:
MerchantJwt
query Parameters
status
string
gateway
string

Responses

Response samples

Content type
application/json
{
  • "requests": [
    ]
}

Create a gateway onboarding request

Authorizations:
MerchantJwt
Request Body schema: application/json
gateway
required
string
object
object
website
string
object
Array of objects

Responses

Request samples

Content type
application/json
{
  • "gateway": "string",
  • "customer": { },
  • "company": { },
  • "website": "string",
  • "gatewayExtra": { },
  • "attachments": [
    ]
}

Response samples

Content type
application/json
{ }

Get a gateway request

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{ }

Update a draft gateway request

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Submit a gateway request

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{ }

Update request status (admin only)

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
status
string

Responses

Request samples

Content type
application/json
{
  • "status": "string"
}

Response samples

Content type
application/json
{
  • "error": "string",
  • "message": "string"
}

Add corrections to a request (admin only)

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "error": "string",
  • "message": "string"
}

Forward a request to the gateway (admin only)

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "error": "string",
  • "message": "string"
}

Gateway Rules

List gateway routing rules

Authorizations:
MerchantJwt
query Parameters
appId
required
string
environment
string (Environment)
Enum: "sandbox" "live"

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Create a gateway routing rule

Authorizations:
MerchantJwt
Request Body schema: application/json
appId
required
string
name
required
string
ruleType
required
string
required
Array of objects
preferredGateway
required
string
environment
required
string (Environment)
Enum: "sandbox" "live"

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "name": "string",
  • "ruleType": "string",
  • "conditions": [
    ],
  • "preferredGateway": "string",
  • "environment": "sandbox"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Paginated gateway routing rules

Authorizations:
MerchantJwt
query Parameters
appId
required
string
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string
environment
string (Environment)
Enum: "sandbox" "live"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get a gateway rule

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Update a gateway rule

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Delete a gateway rule

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Toggle a gateway rule active state

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Seed default gateway rules

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Test gateway rule matching

Authorizations:
MerchantJwt
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "success": true,
  • "data": null,
  • "message": "string",
  • "error": "string"
}

Gateway Request Webhooks

Provider webhook for gateway request status

path Parameters
provider
required
string
Enum: "stripe" "paypal" "moyasar" "myfatoorah"
Request Body schema: application/json
externalId
required
string
status
required
string
Enum: "approved" "rejected" "pending" "live"
encryptedSecrets
string

Responses

Request samples

Content type
application/json
{
  • "externalId": "string",
  • "status": "approved",
  • "encryptedSecrets": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "request": { }
}

Reports

Dashboard statistics

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{ }

List all of the user's tokens

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
[
  • { }
]

Tokens

Create an SDK/client token

Authorizations:
MerchantJwt
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

List tokens for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
[
  • { }
]

Paginated token list for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Paginated lite token list for dropdowns

Authorizations:
MerchantJwt
path Parameters
appId
required
string
query Parameters
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get a token

Authorizations:
MerchantJwt
path Parameters
tokenId
required
string

Responses

Response samples

Content type
application/json
{ }

Update a token

Authorizations:
MerchantJwt
path Parameters
tokenId
required
string
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Delete a token

Authorizations:
MerchantJwt
path Parameters
tokenId
required
string

Responses

Revoke a token

Authorizations:
MerchantJwt
path Parameters
tokenId
required
string

Responses

Add an allowed domain to a token

Authorizations:
MerchantJwt
path Parameters
tokenId
required
string
Request Body schema: application/json
domain
string

Responses

Request samples

Content type
application/json
{
  • "domain": "string"
}

Remove an allowed domain from a token

Authorizations:
MerchantJwt
path Parameters
tokenId
required
string
domain
required
string

URL-encoded domain.

Responses

Notifications

List active notification event types

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
[
  • { }
]

List available notification channels

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List webhook endpoints for an app

Authorizations:
MerchantJwt
query Parameters
appId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a webhook endpoint

Authorizations:
MerchantJwt
Request Body schema: application/json
appId
required
string
url
required
string <uri>
description
string
authHeaderName
string
authHeaderValue
string

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "description": "string",
  • "authHeaderName": "string",
  • "authHeaderValue": "string"
}

Response samples

Content type
application/json
{
  • "endpoint": {
    },
  • "secret": "string"
}

Paginated webhook endpoint list

Authorizations:
MerchantJwt
query Parameters
appId
required
string
page
integer
Default: 1
limit
integer <= 100
Default: 20
sortBy
string
Default: "createdAt"
sortOrder
string
Default: "desc"
Enum: "asc" "desc"
search
string
isActive
string
Enum: "true" "false"

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get a webhook endpoint

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "description": "string",
  • "isActive": true,
  • "authHeaderName": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a webhook endpoint

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
url
string <uri>
description
string
isActive
boolean
authHeaderName
string
authHeaderValue
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "isActive": true,
  • "authHeaderName": "string",
  • "authHeaderValue": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "description": "string",
  • "isActive": true,
  • "authHeaderName": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a webhook endpoint

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Rotate webhook endpoint signing secret

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "secret": "string"
}

Send a test ping event to a webhook endpoint

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

List notification rules for an app

Authorizations:
MerchantJwt
query Parameters
appId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a notification rule

Authorizations:
MerchantJwt
Request Body schema: application/json
appId
required
string
eventType
required
string
channel
required
string
recipient
required
string
isActive
boolean
Default: true
required
object

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "eventType": "string",
  • "channel": "string",
  • "recipient": "string",
  • "isActive": true,
  • "config": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "eventType": "string",
  • "channel": "string",
  • "recipient": "string",
  • "isActive": true,
  • "config": { },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get a notification rule

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "eventType": "string",
  • "channel": "string",
  • "recipient": "string",
  • "isActive": true,
  • "config": { },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a notification rule

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
isActive
boolean
object

Responses

Request samples

Content type
application/json
{
  • "isActive": true,
  • "config": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "eventType": "string",
  • "channel": "string",
  • "recipient": "string",
  • "isActive": true,
  • "config": { },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a notification rule

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

List notification deliveries for an app

Authorizations:
MerchantJwt
query Parameters
appId
required
string
channel
string
status
string
eventType
string
page
integer
Default: 1
limit
integer <= 100
Default: 50

Responses

Response samples

Content type
application/json
{
  • "deliveries": [
    ],
  • "pagination": {
    }
}

Get a notification delivery

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "eventType": "string",
  • "channel": "string",
  • "status": "string",
  • "payload": { },
  • "createdAt": "2019-08-24T14:15:22Z"
}

Request redelivery of a notification

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

List notification templates for an app

Authorizations:
MerchantJwt
query Parameters
appId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a notification template

Authorizations:
MerchantJwt
Request Body schema: application/json
appId
string or null
channel
required
string
eventType
required
string
recipient
required
string
locale
string
Default: "en"
subject
string
body
required
string
isActive
boolean
Default: true

Responses

Request samples

Content type
application/json
{
  • "appId": "string",
  • "channel": "string",
  • "eventType": "string",
  • "recipient": "string",
  • "locale": "en",
  • "subject": "string",
  • "body": "string",
  • "isActive": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "channel": "string",
  • "eventType": "string",
  • "recipient": "string",
  • "locale": "string",
  • "subject": "string",
  • "body": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get a notification template

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "channel": "string",
  • "eventType": "string",
  • "recipient": "string",
  • "locale": "string",
  • "subject": "string",
  • "body": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a notification template

Authorizations:
MerchantJwt
path Parameters
id
required
string
Request Body schema: application/json
subject
string
body
string
isActive
boolean

Responses

Request samples

Content type
application/json
{
  • "subject": "string",
  • "body": "string",
  • "isActive": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "channel": "string",
  • "eventType": "string",
  • "recipient": "string",
  • "locale": "string",
  • "subject": "string",
  • "body": "string",
  • "isActive": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a notification template

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

List in-app notifications for the current user

Authorizations:
MerchantJwt
query Parameters
page
integer
Default: 1
limit
integer <= 50
Default: 5

Responses

Response samples

Content type
application/json
{
  • "notifications": [
    ],
  • "unreadCount": 0,
  • "pagination": {
    }
}

Get unread in-app notification count

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "unreadCount": 0
}

Mark an in-app notification as viewed

Authorizations:
MerchantJwt
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "title": "string",
  • "body": "string",
  • "viewed": true,
  • "createdAt": "2019-08-24T14:15:22Z"
}

Mark all in-app notifications as viewed

Authorizations:
MerchantJwt

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Audit Logs

Query audit logs (admin only)

Requires admin role (requireAdmin).

Authorizations:
MerchantJwt
query Parameters
actorId
string
action
string
status
string
Enum: "success" "failure"
startDate
string <date-time>
endDate
string <date-time>
page
integer
Default: 1
limit
integer
Default: 50

Responses

Response samples

Content type
application/json
{
  • "logs": [
    ],
  • "pagination": {
    }
}

Get audit logs for the current user

Authorizations:
MerchantJwt
query Parameters
limit
integer
Default: 100

Responses

Response samples

Content type
application/json
{
  • "logs": [
    ]
}

Currencies

List currencies

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a currency

Authorizations:
MerchantJwt
Request Body schema: application/json
code
string
name
string
symbol
string

Responses

Request samples

Content type
application/json
{
  • "code": "USD",
  • "name": "string",
  • "symbol": "string"
}

Response samples

Content type
application/json
{
  • "code": "USD",
  • "name": "string",
  • "symbol": "string"
}

Get a currency by ISO code

path Parameters
code
required
string
Example: USD

Responses

Response samples

Content type
application/json
{
  • "code": "USD",
  • "name": "string",
  • "symbol": "string"
}

Update a currency

Authorizations:
MerchantJwt
path Parameters
code
required
string
Example: USD
Request Body schema: application/json
code
string
name
string
symbol
string

Responses

Request samples

Content type
application/json
{
  • "code": "USD",
  • "name": "string",
  • "symbol": "string"
}

Response samples

Content type
application/json
{
  • "code": "USD",
  • "name": "string",
  • "symbol": "string"
}

Convert an amount for a gateway

Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Get a gateway's default currency

path Parameters
gatewayId
required
string

Responses

Response samples

Content type
application/json
{ }

Get a gateway's accepted currencies

path Parameters
gatewayId
required
string

Responses

Response samples

Content type
application/json
{ }

Validate a currency for a gateway

path Parameters
gatewayId
required
string
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Domain Verification

Generate a domain verification file

Authorizations:
MerchantJwt
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Verify domain ownership

Authorizations:
MerchantJwt
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

List verified domains for an app

Authorizations:
MerchantJwt
path Parameters
appId
required
string

Responses

Response samples

Content type
application/json
{ }

Check whether a domain is verified

Authorizations:
MerchantJwt
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Libraries

List libraries

Authorizations:
MerchantJwt
query Parameters
activeOnly
boolean
Default: true

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a library

Authorizations:
MerchantJwt
Request Body schema: application/json
id
string
identifier
string
name
string
description
string
scopes
Array of strings
modules
Array of strings
isActive
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "identifier": "string",
  • "name": "string",
  • "description": "string",
  • "scopes": [
    ],
  • "modules": [
    ],
  • "isActive": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "identifier": "string",
  • "name": "string",
  • "description": "string",
  • "scopes": [
    ],
  • "modules": [
    ],
  • "isActive": true
}

Get a library

Authorizations:
MerchantJwt
path Parameters
libraryId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "identifier": "string",
  • "name": "string",
  • "description": "string",
  • "scopes": [
    ],
  • "modules": [
    ],
  • "isActive": true
}

Update a library

Authorizations:
MerchantJwt
path Parameters
libraryId
required
string
Request Body schema: application/json
id
string
identifier
string
name
string
description
string
scopes
Array of strings
modules
Array of strings
isActive
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "identifier": "string",
  • "name": "string",
  • "description": "string",
  • "scopes": [
    ],
  • "modules": [
    ],
  • "isActive": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "identifier": "string",
  • "name": "string",
  • "description": "string",
  • "scopes": [
    ],
  • "modules": [
    ],
  • "isActive": true
}

Delete a library

Authorizations:
MerchantJwt
path Parameters
libraryId
required
string

Responses

Media

Upload a media file

Authorizations:
MerchantJwt
Request Body schema: multipart/form-data
file
required
string <binary>
appId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "url": "string",
  • "type": "string",
  • "fileName": "string",
  • "size": 0,
  • "createdAt": "2019-08-24T14:15:22Z"
}

List media

Authorizations:
MerchantJwt
query Parameters
appId
required
string
type
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get media metadata

Authorizations:
MerchantJwt
path Parameters
mediaId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "appId": "string",
  • "url": "string",
  • "type": "string",
  • "fileName": "string",
  • "size": 0,
  • "createdAt": "2019-08-24T14:15:22Z"
}

Delete media

Authorizations:
MerchantJwt
path Parameters
mediaId
required
string

Responses