Download OpenAPI specification:Download
Open Fabric APIs, v1
Our APIs use an authentication scheme based on OAuth 2.0. See Authentication for more details.
| grant_type required | string Value: "client_credentials" |
| scope | string Requested scopes for this access token, separated by whitespace. If not provided, all available scopes of the client will be requested.
For the list of available scopes, please refer to the |
grant_type=client_credentials&scope=resources%2Ftransactions.create%20resources%2Ftransactions.read
{- "access_token": "eyJz9sdfsdfsdfsd",
- "id_token": "dmcxd329ujdmkemkd349r",
- "token_type": "Bearer",
- "expires_in": 3600
}API used to provision new accounts. See Provision account for more details.
This API can be used to provision a new account or virtual card.
See Own App Tokens, Digital Wallet Tokens or Virtual Cards for more details.
| Idempotency-Key | string Unique value submitted by the partner to ensure idempotent request during provisioning. |
| type | string (PbaProvisionType) Enum: "nfc_device_token" "static_token" "push_provision" |
| payment_network | string (PbaPaymentNetwork) Enum: "mastercard" "visa" |
| tenant_customer_ref required | string |
| tenant_account_ref required | string <= 64 characters |
| tenant_token_ref | string |
| wallet_id | string |
| device_name | string |
| tenant_account_device_ref | string <= 32 characters |
| billing_currency | string = 3 characters ^[A-Z]*$ |
object (Address) | |
| instrument | string (PbaProvisionInstrument) Enum: "manual_card_entry" "google_pay" "samsung_pay" |
| card_name | string Name of the card |
{- "type": "nfc_device_token",
- "payment_network": "mastercard",
- "tenant_customer_ref": "string",
- "tenant_account_ref": "string",
- "tenant_token_ref": "string",
- "wallet_id": "string",
- "device_name": "string",
- "tenant_account_device_ref": "string",
- "billing_currency": "str",
- "billing_address": {
- "address_line_1": "string",
- "address_line_2": "string",
- "address_line_3": "string",
- "district": "string",
- "city": "string",
- "state": "string",
- "post_code": "string",
- "country": "string",
- "country_code": "st",
- "phone_number": "string",
- "self_pickup": true
}, - "instrument": "manual_card_entry",
- "card_name": "string"
}{- "tenant_account_ref": "string",
- "tenant_customer_ref": "string",
- "tenant_account_device_ref": "string",
- "tenant_token_ref": "string",
- "sdk_tokenize_account_device_data": "string",
- "of_customer_id": "9fc66daf-0a70-4712-85e0-97ae74b12eab",
- "of_account_id": "abd67f67-aa44-4da9-a9b4-a1ddc1235bfe",
- "of_device_id": "e29148d0-3faf-487e-b249-963965333fbe",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",
- "static_token_id": "3fb159c5-3595-473f-a882-31eae6265673",
- "digital_token_id": "string",
- "instrument": "manual_card_entry",
- "locked": true,
- "status": "string",
- "provision_token": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}This API can be used to provision an account for an existing card.
See Own App Tokens - Tokenize an existing card for more details.
| digital_wallet required | string (DigitalWallet) Enum: "issuer" "google_pay" "apple_pay" "samsung_pay" |
| tenant_customer_ref required | string |
| issuer_card_id required | string |
| wallet_id required | string |
| issuer_authentication_data | string |
| encrypted_card_data required | string |
object (Address) |
{- "digital_wallet": "issuer",
- "tenant_customer_ref": "string",
- "issuer_card_id": "string",
- "wallet_id": "string",
- "issuer_authentication_data": "string",
- "encrypted_card_data": "string",
- "billing_address": {
- "address_line_1": "string",
- "address_line_2": "string",
- "address_line_3": "string",
- "district": "string",
- "city": "string",
- "state": "string",
- "post_code": "string",
- "country": "string",
- "country_code": "st",
- "phone_number": "string",
- "self_pickup": true
}
}{- "wallet_id": "string",
- "provisioning_data": { }
}APIs used to manage the lifecycle of secure device wallets. See Lifecycle management for more details.
You can use this API to lock a secure device wallet. This will temporarily block payments and other functionalities of the wallet.
| id required | string <uuid> Wallet ID(format UUID) |
| reason_code required | string (PbaLockWalletReasonCode) Enum: "device_stolen" "device_lost" "suspected_fraud" "other" |
| reason required | string |
{- "reason_code": "device_stolen",
- "reason": "string"
}{- "wallet_id": "string",
- "status": "active",
- "status_timestamp": "2019-08-24T14:15:22Z",
- "suspended_by": [
- "string"
]
}APIs used to retrieve sensitive virtual card details. See Display card details for more details.
This API can be used to get a card fetch token for a specific virtual card.
| static_token_id required | string <uuid> OF static token id |
| account_id required | string financial account id |
| card_encryption_key | string Card Encryption Key for card handover |
| card_encryption_algo | string (CardEncryptionAlgo) Enum: "rsa_oaep" "ecc_ecies" |
{- "static_token_id": "3fb159c5-3595-473f-a882-31eae6265673",
- "account_id": "string",
- "card_encryption_key": "string",
- "card_encryption_algo": "rsa_oaep"
}{- "card_fetch_token": "string"
}This API can be used to retrieve sensitive details of a virtual card.
Warning Please be aware that your system might be subject to a higher level of PCI DSS certification if you use this API.
| card_fetch_token required | string |
| fetch_cvv | boolean Default: true It will be used to return cvv in response or not. By default its true |
{- "card_fetch_token": "YTZkYmJkYWItMWI3ZC00MzNhLTkzOWEtZjYzYzkwMjJmODMz"
}{- "provider": "mastercard",
- "card_reference_id": "7743087",
- "card_number": "5281724086788282",
- "redacted_number": "XXXXXXXXXXXX8282",
- "cvv": "1111",
- "expiry_month": "12",
- "expiry_year": "25",
- "message": "S"
}APIs used to display virtual card details securely. See Display virtual cards for more details.
Generates a short-lived widget URL for displaying card details (PAN, expiry, CVV) in an iframe or webview. The widget URL is time-limited and single-use.
| static_token_id | string Either |
| card_fetch_token | string Either |
| card_art_asset_id | string <uuid> Identifier of a pre-uploaded card art asset. Obtained from the asset upload API. Mutually exclusive with |
| card_art_base64 | string <= 204800 characters Base64 encoded card art image. Max 150KB decoded. Recommended dimensions: 340x214px (or 1.586:1 aspect ratio). Mutually exclusive with |
| card_art_content_type | string (CardArtContentType) Enum: "image/png" "image/jpeg" "image/webp" MIME type of the card art image |
{- "card_fetch_token": "eyJhbGciOiJIUzI1...",
- "card_art_asset_id": "7f3a2b1c-9d4e-5f6a-8b7c-0d1e2f3a4b5c"
}{- "expired_at": "2019-08-24T14:15:22Z"
}Uploads a card art image for reuse across multiple widget sessions. Returns an asset_id that can be referenced in the widget creation API.
| card_art_base64 required | string <= 204800 characters Base64 encoded card art image. Max 150KB decoded. Recommended dimensions: 340x214px (or 1.586:1 aspect ratio). |
| card_art_content_type required | string (CardArtContentType) Enum: "image/png" "image/jpeg" "image/webp" MIME type of the card art image |
| card_art_asset_name | string Optional human-readable label for the asset (e.g., "Premium Black", "Student Card"). |
{- "card_art_base64": "string",
- "card_art_content_type": "image/png",
- "card_art_asset_name": "string"
}{- "card_art_asset_id": "5b16da63-879e-4cf7-ab48-113484c3053f",
- "card_art_asset_name": "string",
- "card_art_content_type": "image/png",
- "size_bytes": 0,
- "created_at": "2019-08-24T14:15:22Z"
}{- "data": [
- {
- "card_art_asset_id": "5b16da63-879e-4cf7-ab48-113484c3053f",
- "card_art_asset_name": "string",
- "card_art_content_type": "image/png",
- "size_bytes": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
]
}Deletes a previously uploaded card art asset. Existing widget sessions that already resolved this asset are unaffected.
| asset_id required | string <uuid> |
{- "error_code": "string",
- "message": "string",
- "details": [
- {
- "error_code": "string",
- "message": "string",
- "param": "string"
}
]
}APIs used to manage virtual cards. See Manage virtual cards for more details.
This API can be used to list all virtual cards belonging to a customer.
Warning
This API can also be used to list all virtual cards of all customers (by omitting both tenant_customer_ref and tenant_account_ref in the request parameters). This kind of query should only be used in extreme scenarios.
| tenant_customer_ref | string Filter by tenant customer ref |
| tenant_account_ref | string Filter by tenant account ref |
| instrument | string (RoutingDataInitializingInstrument) Enum: "web_checkout" "unilateral_checkout" "one_click_checkout" "recurring" "tenant_recurring" "pba_static_token" "qrph" "sgqr" "vietqr" "tap_and_pay" "manual_card_entry" "google_pay" "samsung_pay" Filter by instrument |
| status | string (StaticTokenStatus) Enum: "active" "inactive" "deactivated" Filter by status |
| locked | boolean Filter by lock status |
{- "data": [
- {
- "id": "string",
- "tenant_account_ref": "string",
- "tenant_customer_ref": "string",
- "tenant_token_ref": "string",
- "tsp_token_ref": "string",
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "dpan_redacted_number": "string",
- "dpan_expiry": {
- "month": "string",
- "year": "string"
}, - "fpan_redacted_number": "string",
- "fpan_expiry": {
- "month": "string",
- "year": "string"
}, - "instrument": "web_checkout",
- "status": "active",
- "locked": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}This API can be used to get details of a specific virtual card.
| id required | string Static token id |
{- "id": "string",
- "tenant_account_ref": "string",
- "tenant_customer_ref": "string",
- "tenant_token_ref": "string",
- "tsp_token_ref": "string",
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "dpan_redacted_number": "string",
- "dpan_expiry": {
- "month": "string",
- "year": "string"
}, - "fpan_redacted_number": "string",
- "fpan_expiry": {
- "month": "string",
- "year": "string"
}, - "instrument": "web_checkout",
- "status": "active",
- "locked": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}This API can be used to lock or unlock a specific virtual card.
| id required | string Static token id |
| lock_status required | string (StaticTokenLockStatus) Enum: "locked" "unlocked" |
{- "lock_status": "locked"
}{- "id": "string",
- "tenant_account_ref": "string",
- "tenant_customer_ref": "string",
- "tenant_token_ref": "string",
- "tsp_token_ref": "string",
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "dpan_redacted_number": "string",
- "dpan_expiry": {
- "month": "string",
- "year": "string"
}, - "fpan_redacted_number": "string",
- "fpan_expiry": {
- "month": "string",
- "year": "string"
}, - "instrument": "web_checkout",
- "status": "active",
- "locked": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}This API can be used to deactivate a specific virtual card.
Warning This action is permanent (cannot be undone) and requires the virtual card to be locked first before deleting.
| id required | string Static token id |
| reason_text | string |
| reason_code | string (PbaCustomerDpanSuspendReasonCode) Enum: "device_lost" "device_stolen" "suspected_fraud" "other" |
{- "reason_text": "string",
- "reason_code": "device_lost"
}{- "id": "string",
- "tenant_account_ref": "string",
- "tenant_customer_ref": "string",
- "tenant_token_ref": "string",
- "tsp_token_ref": "string",
- "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
- "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
- "dpan_redacted_number": "string",
- "dpan_expiry": {
- "month": "string",
- "year": "string"
}, - "fpan_redacted_number": "string",
- "fpan_expiry": {
- "month": "string",
- "year": "string"
}, - "instrument": "web_checkout",
- "status": "active",
- "locked": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Notifications sent to your backend when tokens change state within a secure device wallet or when a tokenized transaction authorization occurs within the wallet.
See Token update notifications for more details.
This notification is sent when an account or card was successfully tokenized and activated in the secure device wallet.
| notification_id required | string <uuid> |
| type required | string Value: "v1:wallet:token:activated" |
| created_at required | string <date-time> |
required | object (WalletTokenActivatedEventNotificationPayload) Base schema for wallet token status change notifications data |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:wallet:token:activated",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "token_unique_reference": "string",
- "wallet_id": "string",
- "token_source": "financial_account",
- "activated_at": "2019-08-24T14:15:22Z"
}
}This notification is sent when the tokenized account or card is suspended in the secure device wallet.
| notification_id required | string <uuid> |
| type required | string Value: "v1:wallet:token:suspended" |
| created_at required | string <date-time> |
required | object (WalletTokenSuspendedEventNotificationPayload) Base schema for wallet token status change notifications data |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:wallet:token:suspended",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "token_unique_reference": "string",
- "wallet_id": "string",
- "token_source": "financial_account",
- "reason_code": "string",
- "reason": "string",
- "suspended_at": "2019-08-24T14:15:22Z"
}
}This notification is sent when the tokenized account or card is deleted from the secure device wallet.
| notification_id required | string <uuid> |
| type required | string Value: "v1:wallet:token:deleted" |
| created_at required | string <date-time> |
required | object (WalletTokenDeletedEventNotificationPayload) Base schema for wallet token status change notifications data |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:wallet:token:deleted",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "token_unique_reference": "string",
- "wallet_id": "string",
- "token_source": "financial_account",
- "reason_code": "string",
- "reason": "string",
- "deleted_at": "2019-08-24T14:15:22Z"
}
}This notification is sent when a transaction is authorized within the secure device wallet.
| notification_id required | string <uuid> |
| type required | string Value: "v1:wallet:transaction:authorization" |
| created_at required | string <date-time> |
required | object (PbaWalletTransactionAuthorizedNotification) v1:wallet:transaction:authorization |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:wallet:transaction:authorization",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "id": "string",
- "tenant_id": "string",
- "wallet_id": "string",
- "token_unique_reference": "string",
- "tsp_transaction_ref": "string",
- "amount": 0,
- "currency": "string",
- "authorization_status": "authorized",
- "transaction_type": "purchase",
- "merchant_name": "string",
- "merchant_category_code": "string",
- "merchant_outlet_address": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}APIs related to authorization messages. These are messages sent from our platform to your backend.
See Authorization message for more details.
Ledger operations that Open Fabric calls on your backend to apply balance changes (debit/credit/hold/release).
See Ledger APIs for more details.
debit_balance: Deduct funds from a customer’s balance for settlement.
| transaction_id required | string Unique identifier for the transaction |
| tenant_account_ref required | string Identifier of the tenant account |
| idempotency_key required | string Unique identifier to prevent duplicate operations |
object (BalanceAmount) Amount object used in balance operations | |
| of_action_ref required | string OpenFabric reference identifier for the operation |
| tenant_balance_ref | string Reference of the exact balance to be debited (used in refund reversal) |
{- "transaction_id": "string",
- "tenant_account_ref": "string",
- "idempotency_key": "string",
- "amount": {
- "value": 0,
- "currency": "str"
}, - "of_action_ref": "string",
- "tenant_balance_ref": "string"
}{- "success": true,
- "tenant_balance_ref": "string",
- "available_balance": {
- "value": 0,
- "currency": "str"
}, - "tenant_action_ref": "string",
- "error": {
- "code": "string",
- "message": "string"
}
}credit_balance: Add funds to a customer’s balance (for refunds or adjustments).
| transaction_id required | string Unique identifier for the transaction |
| tenant_account_ref required | string Identifier of the tenant account |
| idempotency_key required | string Unique identifier to prevent duplicate operations |
object (BalanceAmount) Amount object used in balance operations | |
| of_action_ref required | string OpenFabric reference identifier for the operation |
| tenant_balance_ref | string Reference of the exact balance to be credited (used in auth reversal) |
{- "transaction_id": "string",
- "tenant_account_ref": "string",
- "idempotency_key": "string",
- "amount": {
- "value": 0,
- "currency": "str"
}, - "of_action_ref": "string",
- "tenant_balance_ref": "string"
}{- "success": true,
- "tenant_balance_ref": "string",
- "available_balance": {
- "value": 0,
- "currency": "str"
}, - "tenant_action_ref": "string",
- "error": {
- "code": "string",
- "message": "string"
}
}hold_balance: Place a hold on funds in a customer’s balance (pre-authorization).
| transaction_id required | string Unique identifier for the transaction |
| tenant_account_ref required | string Identifier of the tenant account |
| idempotency_key required | string Unique identifier to prevent duplicate operations |
object (BalanceAmount) Amount object used in balance operations | |
| of_action_ref required | string OpenFabric reference identifier for the operation |
| tenant_hold_balance_ref | string Reference of the hold funds balance to be increased (used in pre-auth incremental) |
{- "transaction_id": "string",
- "tenant_account_ref": "string",
- "idempotency_key": "string",
- "amount": {
- "value": 0,
- "currency": "str"
}, - "of_action_ref": "string",
- "tenant_hold_balance_ref": "string"
}{- "success": true,
- "tenant_hold_balance_ref": "string",
- "available_balance": {
- "value": 0,
- "currency": "str"
}, - "tenant_action_ref": "string",
- "error": {
- "code": "string",
- "message": "string"
}
}restore_balance: Release previously held funds back to available balance.
| transaction_id required | string Unique identifier for the transaction |
| tenant_account_ref required | string Identifier of the tenant account |
| idempotency_key required | string Unique identifier to prevent duplicate operations |
object (BalanceAmount) Amount object used in balance operations | |
| of_action_ref required | string OpenFabric reference identifier for the operation |
| tenant_hold_balance_ref required | string Reference of the hold funds balance to be released (required) |
{- "transaction_id": "string",
- "tenant_account_ref": "string",
- "idempotency_key": "string",
- "amount": {
- "value": 0,
- "currency": "str"
}, - "of_action_ref": "string",
- "tenant_hold_balance_ref": "string"
}{- "success": true,
- "tenant_balance_ref": "string",
- "available_balance": {
- "value": 0,
- "currency": "str"
}, - "tenant_action_ref": "string",
- "error": {
- "code": "string",
- "message": "string"
}
}debit_hold_balance: Deduct an amount from previously held funds (created with hold_balance).
| transaction_id required | string Unique identifier for the transaction |
| tenant_account_ref required | string Identifier of the tenant account |
| idempotency_key required | string Unique identifier to prevent duplicate operations |
object (BalanceAmount) Amount object used in balance operations | |
| of_action_ref required | string OpenFabric reference identifier for the operation |
| tenant_hold_balance_ref required | string Reference of the hold funds balance to be debited (required) |
{- "transaction_id": "string",
- "tenant_account_ref": "string",
- "idempotency_key": "string",
- "amount": {
- "value": 0,
- "currency": "str"
}, - "of_action_ref": "string",
- "tenant_hold_balance_ref": "string"
}{- "success": true,
- "tenant_hold_balance_ref": "string",
- "hold_balance": {
- "value": 0,
- "currency": "str"
}, - "tenant_action_ref": "string",
- "error": {
- "code": "string",
- "message": "string"
}
}credit_hold_balance: Add an amount to previously held funds (created with hold_balance).
| transaction_id required | string Unique identifier for the transaction |
| tenant_account_ref required | string Identifier of the tenant account |
| idempotency_key required | string Unique identifier to prevent duplicate operations |
object (BalanceAmount) Amount object used in balance operations | |
| of_action_ref required | string OpenFabric reference identifier for the operation |
| tenant_hold_balance_ref required | string Reference of the hold funds balance to be credited (required) |
{- "transaction_id": "string",
- "tenant_account_ref": "string",
- "idempotency_key": "string",
- "amount": {
- "value": 0,
- "currency": "str"
}, - "of_action_ref": "string",
- "tenant_hold_balance_ref": "string"
}{- "success": true,
- "tenant_hold_balance_ref": "string",
- "hold_balance": {
- "value": 0,
- "currency": "str"
}, - "tenant_action_ref": "string",
- "error": {
- "code": "string",
- "message": "string"
}
}Notifications related to reversals. These are messages sent from our platform to your backend.
See Reversal notifications for more details.
Notification sent when a previously approved final authorization is reversed.
See Reversal notifications for more details.
| notification_id required | string <uuid> |
| type required | string Value: "v1:pba:transaction:final_auth_reversed" |
| created_at required | string <date-time> |
required | object (FinalAuthReversalNotification) v1:pba:transaction:final_auth_reversed |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:pba:transaction:final_auth_reversed",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
- "tenant_reference_id": "string",
- "network_transaction_ref": "string",
- "network_message_ref": "string",
- "amount": 0,
- "currency": "string",
- "billing_amount": 0,
- "billing_currency_code": "string",
- "billing_exchange_rate": 0,
- "settlement_amount": 0,
- "settlement_currency_code": "string",
- "settlement_exchange_rate": 0,
- "network_merchant_country_code": "st",
- "is_converted_pre_auth": true
}
}Notification sent when a previously approved pre-authorization is reversed.
See Reversal notifications for more details.
| notification_id required | string <uuid> |
| type required | string Value: "v1:pba:transaction:pre_auth_reversed" |
| created_at required | string <date-time> |
required | object (PreAuthReversalNotification) v1:pba:transaction:pre_auth_reversed |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:pba:transaction:pre_auth_reversed",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
- "tenant_reference_id": "string",
- "network_transaction_ref": "string",
- "network_message_ref": "string",
- "amount": 0,
- "currency": "string",
- "billing_amount": 0,
- "billing_currency_code": "string",
- "billing_exchange_rate": 0,
- "settlement_amount": 0,
- "settlement_currency_code": "string",
- "settlement_exchange_rate": 0,
- "network_merchant_country_code": "st"
}
}APIs and messages used to complete 3D Secure challenges during payment processing.
See Handle 3D Secure Payments for more details.
This notification is sent to your backend when a 3D Secure challenge requires an out-of-band (OOB) challenge to be completed.
See 3DS Out of Band (OOB) challenge flow for more details.
| three_ds_challenge_id required | string three_ds_logs.id |
| tenant_customer_ref required | string |
| customer_id required | string |
| tenant_account_ref required | string |
| account_id required | string |
| static_token_id required | string |
| merchant_name required | string |
| transaction_amount required | number |
| transaction_currency required | string |
| creation_time required | string <date-time> |
{- "three_ds_challenge_id": "string",
- "tenant_customer_ref": "string",
- "customer_id": "string",
- "tenant_account_ref": "string",
- "account_id": "string",
- "static_token_id": "string",
- "merchant_name": "string",
- "transaction_amount": 0,
- "transaction_currency": "string",
- "creation_time": "2019-08-24T14:15:22Z"
}This API is used for you to update our system with the 3DS challenge response in case of the Out of Band (OOB) challenge flow.
See 3DS Out of Band (OOB) challenge flow for more details.
| three_ds_challenge_id required | string |
| static_token_id required | string |
| tenant_customer_ref required | string |
| tenant_account_ref required | string |
| challenge_result required | string (ThreeDsActionResult) Enum: "pending" "approved" "declined" "cancelled" |
| reason | string |
| creation_time required | string <date-time> |
{- "three_ds_challenge_id": "string",
- "static_token_id": "string",
- "tenant_customer_ref": "string",
- "tenant_account_ref": "string",
- "challenge_result": "pending",
- "reason": "string",
- "creation_time": "2019-08-24T14:15:22Z"
}{- "error_code": "string",
- "message": "string",
- "details": [
- {
- "error_code": "string",
- "message": "string",
- "param": "string"
}
]
}This notification is sent to your backend when a 3D Secure challenge requires an OTP to be sent to the cardholder.
See 3DS OTP flow for more details.
| three_ds_challenge_id required | string three_ds_logs.id |
| tenant_customer_ref required | string |
| customer_id required | string |
| tenant_account_ref required | string |
| account_id required | string |
| static_token_id required | string |
| merchant_name required | string |
| transaction_amount required | number |
| transaction_currency required | string |
| creation_time required | string <date-time> |
| authentication_credential | string |
| encrypted_authentication_credential | string |
{- "three_ds_challenge_id": "string",
- "tenant_customer_ref": "string",
- "customer_id": "string",
- "tenant_account_ref": "string",
- "account_id": "string",
- "static_token_id": "string",
- "merchant_name": "string",
- "transaction_amount": 0,
- "transaction_currency": "string",
- "creation_time": "2019-08-24T14:15:22Z",
- "authentication_credential": "string",
- "encrypted_authentication_credential": "string"
}{- "three_ds_challenge_id": "string",
- "masked_email": "string",
- "masked_phone_number": "string"
}Messages related to clearing. These are messages sent from our platform to your backend via notifications and reporting.
See Clearing operations for more details.
| network_clearing_ref required | string |
| type required | string (PbaClearingType) Enum: "final_auth" "final_auth_reversal" "final_auth_partial" "final_auth_partial_reversal" "pre_auth_partial" "pre_auth_partial_reversal" "pre_auth_final" "pre_auth_final_reversal" "final_auth_expiry" "pre_auth_expiry" "refund" "refund_reversal" "refund_expiry" "chargeback_challenge" "chargeback_challenge_reversal" "chargeback" "chargeback_reversal" "fee_collection_credit" "fee_collection_credit_reversal" "fee_collection_debit" "fee_collection_debit_reversal" "unlinked_auth_partial" "unlinked_auth_final" "unlinked_auth_partial_reversal" "unlinked_auth_final_reversal" "unlinked_refund" "unlinked_refund_reversal" "unlinked_chargeback" |
| transfer_type required | string (PbaTransferType) Enum: "consumer_debit" "consumer_credit" "ahi_debit" "ahi_credit" |
| is_potential_chargeback required | boolean |
| original_transaction_id | string |
| transaction_id | string Transaction ID of this transaction itself. Used for action mapping workflow dispatch. |
| network_transaction_ref | string |
| network_acquirer_transaction_ref | string |
| original_tenant_transaction_ref | string |
| customer_id | string |
| tenant_account_ref | string |
| tenant_customer_ref | string |
| network_merchant_name required | string |
| network_merchant_outlet_address required | string |
| network_merchant_id required | string |
| amount required | number |
| currency required | string |
| billing_amount required | number |
| billing_currency_code required | string |
| billing_exchange_rate required | number |
| settlement_amount required | number |
| settlement_currency_code required | string |
| settlement_exchange_rate required | number |
| interchange_fee_amount required | number |
| interchange_fee_currency_code required | string |
| network_clearing_file_ref required | string |
| network_clearing_file_name required | string |
| network_clearing_timestamp required | string |
| transaction_source required | string (PbaTransactionSource) Enum: "ecommerce" "terminal" "unsupported_dfle" "unsupported_tagc" "unsupported_brcd" "unsupported_mgst" "unsupported_unkw" "unsupported_mail" "unsupported_tlph" "unsupported_tvpy" "unsupported_mobl" |
| network_posting_file_id required | string Mastercard's identifier of the GCMS file in which the transaction appeared |
| network_merchant_category_code | string Type of services or goods the Merchant provides for the transaction |
| network_acquirer_id required | string Acquirer identification of the transaction |
| network_merchant_country_code | string Country Code - ISO 3166 Alpha-2 |
| is_converted_pre_auth required | boolean Indicates if this is a converted pre-authorization transaction |
| network_merchant_terminal_id | string ID of the Merchant Terminal |
| network_merchant_city | string City of the Merchant Terminal |
{- "network_clearing_ref": "string",
- "type": "final_auth",
- "transfer_type": "consumer_debit",
- "is_potential_chargeback": true,
- "original_transaction_id": "string",
- "transaction_id": "string",
- "network_transaction_ref": "string",
- "network_acquirer_transaction_ref": "string",
- "original_tenant_transaction_ref": "string",
- "customer_id": "string",
- "tenant_account_ref": "string",
- "tenant_customer_ref": "string",
- "network_merchant_name": "string",
- "network_merchant_outlet_address": "string",
- "network_merchant_id": "string",
- "amount": 0,
- "currency": "string",
- "billing_amount": 0,
- "billing_currency_code": "string",
- "billing_exchange_rate": 0,
- "settlement_amount": 0,
- "settlement_currency_code": "string",
- "settlement_exchange_rate": 0,
- "interchange_fee_amount": 0,
- "interchange_fee_currency_code": "string",
- "network_clearing_file_ref": "string",
- "network_clearing_file_name": "string",
- "network_clearing_timestamp": "string",
- "transaction_source": "ecommerce",
- "network_posting_file_id": "string",
- "network_merchant_category_code": "string",
- "network_acquirer_id": "string",
- "network_merchant_country_code": "string",
- "is_converted_pre_auth": true,
- "network_merchant_terminal_id": "string",
- "network_merchant_city": "string"
}Notification sent when a clearing file is ready to be processed.
| notification_id required | string <uuid> |
| type required | string Value: "v1:pba:eoc:clearing_file_ready" |
| created_at required | string <date-time> |
required | object (EOCFileProcessedNotification) v1:pba:eoc:clearing_file_ready |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:pba:eoc:clearing_file_ready",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "file_name": "string",
- "file_ref": "string",
- "file_checksum": "string",
- "network_file_id": "string",
- "network_timestamp": "2019-08-24T14:15:22Z",
- "number_of_instructions": 0
}
}Messages related to settlement. These are messages sent from our platform to your backend via notifications and reporting.
See Settlement for more details.
required | object (ReconciliationAndNetSettlementSummary) |
required | Array of objects (SettlementRecordDetail) |
{- "reconciliationAndNetSettlementSummary": {
- "network_settlement_file_ref": "string",
- "network_settlement_file_name": "string",
- "network_reconciliation_date": "string",
- "network_reconciliation_timestamp": "string",
- "interbank_settlement_date": "string",
- "transfer_currency_code": "string",
- "transfer_amount": 0,
- "transfer_type": "consumer_debit",
- "transfer_payment_message_ref": "string",
- "transfer_end_to_end_ref": "string",
- "transfer_requested_exec_date": "string",
- "settlement_currency_code": "string",
- "total_net_recon_amount": 0,
- "total_credit_txn_amount": 0,
- "total_credit_number_of_txn": 0,
- "total_credit_chargeback_amount": 0,
- "total_credit_number_of_chargeback": 0,
- "total_credit_reversal_amount": 0,
- "total_credit_number_of_reversal": 0,
- "total_credit_interchange_fee_amount": 0,
- "total_debit_txn_amount": 0,
- "total_debit_number_of_txn": 0,
- "total_debit_chargeback_amount": 0,
- "total_debit_number_of_chargeback": 0,
- "total_debit_reversal_amount": 0,
- "total_debit_number_of_reversal": 0,
- "total_debit_interchange_fee_amount": 0,
- "total_number_of_auth": 0,
- "total_number_of_auth_reversal": 0,
- "network_settlement_timestamp": "string"
}, - "settlementRecordDetails": [
- {
- "network_settlement_ref": "string",
- "type": "final_auth",
- "transfer_type": "consumer_debit",
- "is_potential_chargeback": true,
- "network_settlement_file_ref": "string",
- "network_settlement_file_name": "string",
- "original_transaction_id": "string",
- "transaction_id": "string",
- "network_transaction_ref": "string",
- "network_acquirer_transaction_ref": "string",
- "original_tenant_transaction_ref": "string",
- "customer_id": "string",
- "tenant_customer_ref": "string",
- "tenant_account_ref": "string",
- "network_merchant_name": "string",
- "network_merchant_outlet_address": "string",
- "network_merchant_id": "string",
- "amount": 0,
- "currency": "string",
- "billing_amount": 0,
- "billing_currency_code": "string",
- "billing_exchange_rate": 0,
- "settlement_amount": 0,
- "settlement_currency_code": "string",
- "settlement_exchange_rate": 0,
- "interchange_fee_amount": 0,
- "interchange_fee_currency_code": "string",
- "network_settlement_timestamp": "string",
- "transaction_source": "ecommerce",
- "network_posting_file_id": "string",
- "network_merchant_category_code": "string",
- "network_acquirer_id": "string",
- "network_merchant_country_code": "string",
- "is_converted_pre_auth": true,
- "network_merchant_terminal_id": "string",
- "network_merchant_city": "string"
}
]
}Notification sent when a settlement file is ready to be processed.
| notification_id required | string <uuid> |
| type required | string Value: "v1:pba:eos:net_settlement_file_ready" |
| created_at required | string <date-time> |
required | object (EOSNetSettlementNotification) v1:pba:eos:net_settlement_file_ready |
{- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "v1:pba:eos:net_settlement_file_ready",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "file_name": "string",
- "file_ref": "string",
- "file_checksum": "string",
- "network_file_id": "string",
- "network_timestamp": "2019-08-24T14:15:22Z",
- "reconciliation_date": "string",
- "interbank_settlement_date": "string",
- "settlement_currency_code": "string",
- "total_net_recon_amount": 0,
- "total_credit_txn_amount": 0,
- "total_credit_number_of_txn": 0,
- "total_credit_chargeback_amount": 0,
- "total_credit_number_of_chargeback": 0,
- "total_credit_reversal_amount": 0,
- "total_credit_number_of_reversal": 0,
- "total_credit_interchange_fee_amount": 0,
- "total_debit_txn_amount": 0,
- "total_debit_number_of_txn": 0,
- "total_debit_chargeback_amount": 0,
- "total_debit_number_of_chargeback": 0,
- "total_debit_reversal_amount": 0,
- "total_debit_number_of_reversal": 0,
- "total_debit_interchange_fee_amount": 0,
- "total_number_of_auth": 0,
- "total_number_of_auth_reversal": 0
}
}APIs you use to approve/decline and query transactions during online orchestration.
See Orchestrated integration guide for the end-to-end flow.
Open Fabric calls your backend to create a transaction request after a customer selects your payment method at checkout.
You return a response containing a redirect_url to your approval flow and gateway URLs used to redirect the customer back to checkout.
| tenant_partner_id required | string Reference ID to identify Partner on Tenant system |
| fabric_reference_id required | string OpenFabric Generated ID for this Transaction - UUID |
| partner_reference_id required | string Transaction ID set by Partner and sent to OpenFabric |
| tenant_id required | string <uuid> OpenFabric Generated ID for your Tenant account - UUID |
| gateway_success_url required | string <uri> This is the URL Tenant should redirect customers to when the transaction is successfully approved by Tenant |
| gateway_fail_url required | string <uri> This is the URL Tenant should redirect Customers to when the transaction is declined by Tenant. The transaction could be declined, because the customer cancelled the transaction on Tenant's payment flow or the Tenant simply declined to approve this transaction |
object (CustomerInfo) OpenFabric collects the below customer Info Collection from merchants. We will pass-through the collected info to Tenant | |
| amount required | number Transaction amount for which Tenant's authorization is requested |
| currency required | string = 3 characters ^[A-Z]*$ Transaction Currency for which Tenant's authorization is requested (ISO 4217 Alpha-3 currency codes) |
required | object (TransactionDetails) Transaction Details sent by Partner. |
object (PatLinkInfo) | |
| partner_name | string Partner name |
| source | string Source of transaction request |
{- "tenant_partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "fabric_reference_id": "ff0398e5-d045-441f-b130-bcd517964775",
- "partner_reference_id": "P1293201980299030",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "customer_info": {
- "mobile_number": "+6587654321",
- "email": "developer@bnpl1.com",
- "first_name": "BNPL",
- "middle_name": "string",
- "last_name": "Developer",
- "country": "string",
- "country_code": "st",
- "partner_reference_id": "cd992711-498f-47be-b636-cf2e3eaad935"
}, - "amount": 120.1,
- "currency": "SGD",
- "transaction_details": {
- "shipping_address": {
- "address_line_1": "80 Robinson Road",
- "address_line_2": "#09-01",
- "address_line_3": "#09-01",
- "district": "string",
- "city": "string",
- "state": "string",
- "post_code": "068898",
- "country": "Singapore",
- "country_code": "SG",
- "phone_number": "string",
- "self_pickup": true
}, - "billing_address": {
- "address_line_1": "80 Robinson Road",
- "address_line_2": "#09-01",
- "address_line_3": "#09-01",
- "district": "string",
- "city": "string",
- "state": "string",
- "post_code": "068898",
- "country": "Singapore",
- "country_code": "SG",
- "phone_number": "string",
- "self_pickup": true
}, - "items": [
- {
- "item_id": "P100",
- "name": "iPhone",
- "variation_name": "Black, 128GB",
- "description": "string",
- "quantity": 1,
- "price": 11020,
- "original_price": 12020,
- "discount_amount": 0,
- "amount": 0,
- "tax_amount": 0,
- "tax_code": "string",
- "categories": [
- "Electronics"
], - "item_url": "string",
- "item_image_url": "string",
- "seller_info": {
- "seller_id": "string",
- "seller_name": "string",
- "email": "string",
- "phone": "string",
- "url": "string",
- "seller_address": "string"
}
}, - {
- "item_id": "P101",
- "name": "iPhone SE case",
- "price": 1000,
- "quantity": 1,
- "variation_name": "White",
- "categories": [
- "Accessories"
]
}
], - "original_amount": 13020,
- "tax_amount": 390.6,
- "shipping_amount": 1020,
- "voucher_code": "string",
- "fees": {
- "description": "string",
- "amount": 0
}, - "refundable_amount": 0,
- "additional_info": { },
- "expiry_date": "2019-08-24T14:15:22Z"
}, - "pat_link": {
- "link_id": "02a2c2f0-9521-47cc-9615-2e177adeebac",
- "tenant_link_ref": "string",
- "partner_link_ref": "string"
}, - "partner_name": "string",
- "source": "string"
}{- "tenant_reference_id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "status": "approved",
- "reason": "string"
}Tenant can call this API to approve or fail a transaction.
Open Fabric will create a Transaction with the default state created. Tenant can update the transaction to approved or failed.
| tenant_reference_id required | string >= 4 characters ^[a-zA-Z0-9\-_@\.]*$ Transaction ID in Tenant system. This is the same transaction ID that Tenant shared as part of the above step |
| status required | string (TransactionApprovalStatus) Enum: "approved" "failed" Tenant can either Approve or Fail a transaction. In case of Failed, reason is mandatory. |
| approved_amount | number Approved transaction amount |
| approved_currency | string = 3 characters ^[A-Z]*$ Approved transaction Currency (ISO 4217 Alpha-3 currency codes) |
| reason | string |
{- "tenant_reference_id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "status": "approved"
}{- "error_code": "string",
- "message": "string",
- "details": [
- {
- "error_code": "string",
- "message": "string",
- "param": "string"
}
]
}This API can be used to fetch a transaction
| id required | string <uuid> OpenFabric Generated ID for this Transaction. You will receive this part of Update Transaction Response. |
{- "id": "ff0398e5-d045-441f-b130-bcd517964775",
- "partner_reference_id": "P1293201980299030",
- "tenant_reference_id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "9bde4fbf-893b-49f9-b7b3-4079a76bb362",
- "partner_name": "Lazada",
- "customer_id": "88db7aa7-2cdd-42cc-9827-8d46f936ef79",
- "partner_redirect_success_url": "http://sample-merchant-flow.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=PAID",
- "partner_redirect_fail_url": "http://sample-merchant-flow.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=CANCELLED",
- "gateway_success_url": "http://of-gateway.s3-website-ap-southeast-1.amazonaws.com?reference_id=P1293201980299030&state=PAID",
- "customer_info": {
- "mobile_number": "+6587654321",
- "first_name": "postpebnpl",
- "last_name": "developer",
- "country": "Singapore",
- "country_code": "SG",
- "email": "developer@bnpl1.com"
}, - "amount": 120.1,
- "currency": "SGD",
- "status": "created",
- "card_reference_id": "7743087",
- "created_at": "2021-11-06T04:26:47.450Z",
- "updated_at": "2021-11-06T04:26:47.450Z"
}This API can be used to fetch transaction with all details including card, customer and transaction information submitted by Partner.
| id required | string <uuid> OpenFabric Generated ID for this Transaction. You will receive this part of Update Transaction Response. |
{- "id": "ff0398e5-d045-441f-b130-bcd517964775",
- "partner_reference_id": "P1293201980299030",
- "tenant_reference_id": "Tenant-cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "9bde4fbf-893b-49f9-b7b3-4079a76bb362",
- "partner_name": "Lazada",
- "partner_redirect_success_url": "http://sample-merchant-flow.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=PAID",
- "partner_redirect_fail_url": "http://sample-merchant-flow.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=CANCELLED",
- "gateway_success_url": "http://of-gateway.s3-website-ap-southeast-1.amazonaws.com?reference_id=P1293201980299030&state=PAID",
- "card": {
- "id": "62f321a3-7f34-4a18-a556-9e00fdc22467",
- "customer_id": "62f321a3-7f34-4a18-a556-9e00fdc22467",
- "redacted_number": "1111",
- "country": "USA",
- "country_code": "US"
}, - "customer_id": "88db7aa7-2cdd-42cc-9827-8d46f936ef79",
- "customer_info": {
- "mobile_number": "+6587654321",
- "first_name": "postpebnpl",
- "last_name": "developer",
- "country": "Singapore",
- "country_code": "SG",
- "email": "developer@bnpl1.com"
}, - "amount": 120.1,
- "currency": "SGD",
- "status": "failed",
- "card_reference_id": "7743087",
- "created_at": "2021-11-06T04:26:47.450Z",
- "updated_at": "2021-11-06T04:26:47.450Z",
- "transaction_details": {
- "shipping_address": {
- "country": "Singapore",
- "country_code": "SG",
- "address_line_1": "80 Robinson Road",
- "address_line_2": "#09-01",
- "address_line_3": "#09-01",
- "post_code": "068898"
}, - "billing_address": {
- "country": "Singapore",
- "country_code": "SG",
- "address_line_1": "80 Robinson Road",
- "address_line_2": "#09-01",
- "address_line_3": "#09-01",
- "post_code": "068898"
}, - "items": [
- {
- "item_id": "P100",
- "name": "iPhone",
- "price": 11020,
- "quantity": 1,
- "variation_name": "Black, 128GB",
- "original_price": 12020,
- "categories": [
- "Electronics"
]
}, - {
- "item_id": "P101",
- "name": "iPhone SE case",
- "price": 1000,
- "quantity": 1,
- "variation_name": "White",
- "categories": [
- "Accessories"
]
}
], - "tax_amount": 390.6,
- "shipping_amount": 1020,
- "original_amount": 13020
}
}Callback sent to your backend after a one-time payment credential is charged successfully.
| notification_id | string <uuid> ID of the notification |
| type required | string Value: "transaction:charged" type of notification |
| created_at required | string <date-time> |
required | object (schemas-AccountTransactionChargedNotification) Notification for transaction charge |
[- {
- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "transaction:charged",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "transaction_id": "cd992711-498f-47be-b636-cf2e3eaad936",
- "tenant_reference_id": "BNPL123456890",
- "status": "charged",
- "charged_at": "2021-11-06T04:26:47.450Z"
}
}
]Callback sent to your backend when a reversal or refund is issued against a one-time payment credential.
| notification_id | string <uuid> ID of the notification |
| type required | string Value: "transaction:reversed" type of notification |
| created_at required | string <date-time> |
required | object (schemas-AccountTransactionReversedNotification) |
[- {
- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "transaction:reversed",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "transaction_id": "cd992711-498f-47be-b636-cf2e3eaad936",
- "tenant_reference_id": "BNPL123456890",
- "status": "reversed",
- "reversed_at": "2021-11-06T04:26:47.450Z",
- "reversed_amount": 7500,
- "action_type": "reversal"
}
}
]Callback sent to your backend when a transaction is credited.
| notification_id | string <uuid> ID of the notification |
| type required | string Value: "transaction:credited" type of notification |
| created_at required | string <date-time> |
required | object (schemas-AccountTransactionCreditedNotification) |
[- {
- "notification_id": "f96afe21-aef9-465c-a9f6-813055655b04",
- "type": "transaction:credited",
- "created_at": "2019-08-24T14:15:22Z",
- "data": {
- "transaction_id": "cd992711-498f-47be-b636-cf2e3eaad936",
- "tenant_customer_ref": "CUS23432898",
- "tenant_link_ref": "PM-1293201980299030",
- "status": "credited",
- "credited_at": "2021-11-06T04:26:47.450Z",
- "credited_amount": 7500,
- "currency": "PHP",
- "billing_credited_amount": 134.75,
- "billing_currency": "USD",
- "network_transaction_time": "2021-11-04T00:00:00Z",
- "network_merchant_category_code": "5812",
- "network_merchant_id": "W2E7JYS5UGIYXN1",
- "network_merchant_name": "WWW.EMBARKLABS.ORG",
- "network_merchant_outlet_address": "+6586866171 SG"
}
}
]APIs to manage your callback (webhook) subscriptions for online-orchestration updates.
{- "value": {
- "id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}
}Create a webhook subscription for Tenant
| webhook_type | string (WebhookType) Enum: "online" "pat_provision" Webhook type |
Notification subscription object to init
| config required | object Configuration options for the subscription |
| subscribed_events required | Array of strings |
{- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}{- "id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}Update an existing webhook subscription for Tenant
| id required | string <uuid> ID of an existing notification subscription |
| webhook_type | string (WebhookType) Enum: "online" "pat_provision" Webhook type |
Notification subscription object to update
| config required | object Configuration options for the subscription |
| subscribed_events required | Array of strings |
{- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}{- "id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}APIs to create, update, list, and deactivate merchants/payment gateways (“partners”) that integrate with Open Fabric.
Get all Partners associated with current Tenant
| sort | string Example: sort=name,+tenant_partner_id Multiple sorting conditions |
| name | string Filter by name |
| tenant_partner_id | string Filter by Tenant Partner id |
| slug | string Filter by slug |
| country | string Filter by country |
| website_url | string Filter by website |
| category | string Filter by category |
| page | integer Current page |
| limit | integer Deprecated Number of records |
| page_size | integer Number of records |
| labels | string Example: labels=labels=qrph,nfc Filter by Labels |
{- "data": [
- {
- "id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "name": "Lazada",
- "slug": "lazada",
- "tenant_partner_id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "email": "admin@lazada.co.th"
}, - {
- "id": "9c9a3084-772b-4ef9-9b7a-46ea5d9d33a1",
- "name": "Airpay",
- "slug": "airpay",
- "tenant_partner_id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "email": "admin@airpay.com"
}, - {
- "id": "96a0c342-88b5-4fb2-98e7-f5b217f2f14b",
- "name": "Grab",
- "slug": "grab",
- "tenant_partner_id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "email": "admin@grab.com"
}
], - "metadata": {
- "page_size": 10,
- "page": 1,
- "total_pages": 1,
- "total": 3
}
}Create a Partner
| name required | string |
| tenant_partner_id required | string [ 4 .. 36 ] characters ^[a-zA-Z0-9\-_@\.]*$ |
| slug required | string [ 4 .. 30 ] characters ^[a-z0-9][a-z0-9\-]*[a-z0-9]$ |
string <email> | |
| website_url required | string <uri> |
| category | string |
| country | string |
{- "name": "string",
- "tenant_partner_id": "string",
- "slug": "string",
- "email": "user@example.com",
- "category": "string",
- "country": "string"
}{- "id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "name": "Lazada",
- "tenant_partner_id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "slug": "lazada",
}{- "id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "tenant_partner_id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "name": "Lazada",
- "slug": "lazada",
- "email": "admin@lazada.co.th"
}Update a Partner with the current Tenant
| partner_id required | string |
Body request to update Partner for Tenant
| name | string |
| website_url | string <uri> |
| category | string |
| country | string |
string <email> | |
| tenant_partner_id | string [ 4 .. 36 ] characters ^[a-zA-Z0-9\-_@\.]*$ |
{- "tenant_partner_id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "name": "Lazada",
- "email": "admin@lazada.co.th"
}{- "id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "tenant_partner_id": "4fde45e1-6e4f-4039-a8de-bb316a4adeb8",
- "name": "Lazada",
- "slug": "lazada",
- "email": "admin@lazada.co.th"
}APIs to manage partner credentials, callback subscriptions, and payment gateway credentials used for token handover.
Retrieve API credentials of a Partner
| partner_id required | string <uuid> Partner ID |
| alias required | string^[\S]+$ Alias for the credentials |
{- "alias": "default",
- "client_id": "id119i9d8ekasjc9x",
- "client_secret": "secret3jjsj3jdjk2jkesk"
}Revoke and request new API credentials of a Partner
| partner_id required | string <uuid> Partner ID |
| alias required | string^[\S]+$ Alias for the credentials |
{- "alias": "default",
- "client_id": "id119i9d8ekasjc9x",
- "client_secret": "secret3jjsj3jdjk2jkesk"
}Create a webhook subscription for a Partner
| partner_id required | string <uuid> Partner ID |
| webhook_type | string (WebhookType) Enum: "online" "pat_provision" Webhook type |
Notification subscription object to init
| config required | object Configuration options for the subscription |
| subscribed_events required | Array of strings |
{- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}{- "id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "00fcf093-71fb-4349-8c0b-de810480d6b2",
- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}Update a webhook subscription of a Partner
| partner_id required | string <uuid> Partner ID |
| id required | string <uuid> ID of an existing notification subscription |
| webhook_type | string (WebhookType) Enum: "online" "pat_provision" Webhook type |
Notification subscription object to update
| config required | object Configuration options for the subscription |
| subscribed_events required | Array of strings |
{- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}{- "id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "00fcf093-71fb-4349-8c0b-de810480d6b2",
- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}List all PG credentials of a Partner
| partner_id required | string <uuid> Partner ID |
| pg_name | string^[\S]+$ pg name |
{- "value": {
- "id": "143334c3-1b7d-433a-939a-f63c9022f800",
- "tenant_id": "a6dbbdab-1b7d-433a-939a-f63c9022f833",
- "partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "pg_name": "xendit",
- "credential_format": "api_key_pair",
- "redacted_credentials": {
- "api_key_pair": {
- "public_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz",
- "private_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}
}, - "additional_params": {
- "processing_channel_id": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}, - "charge_config": {
- "request_pg_3ds": true,
- "headless_3ds": false
}
}
}Update a PG credential for a PG of a Partner
| partner_id required | string <uuid> Partner ID |
| pg_name required | string^[\S]+$ PG name |
| credential_format required | string (CredentialFormat) Value: "api_key_pair" |
ApiKeyPGCredential (object) (PGCredentialData) | |
object | |
object (ChargeConfig) |
{- "value": {
- "credential_format": "api_key_pair",
- "credentials": {
- "api_key_pair": {
- "public_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz",
- "private_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}
}, - "additional_params": {
- "processing_channel_id": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}, - "charge_config": {
- "request_pg_3ds": true,
- "headless_3ds": false
}
}
}{- "id": "143334c3-1b7d-433a-939a-f63c9022f800",
- "tenant_id": "a6dbbdab-1b7d-433a-939a-f63c9022f833",
- "partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "pg_name": "xendit",
- "credential_format": "api_key_pair",
- "redacted_credentials": {
- "api_key_pair": {
- "public_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz",
- "private_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}
}, - "additional_params": {
- "processing_channel_id": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}, - "charge_config": {
- "request_pg_3ds": true,
- "headless_3ds": false
}
}Get a PG credential for a PG of Partner
| partner_id required | string <uuid> Partner ID |
| pg_name required | string^[\S]+$ PG name |
{- "id": "143334c3-1b7d-433a-939a-f63c9022f800",
- "tenant_id": "a6dbbdab-1b7d-433a-939a-f63c9022f833",
- "partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "pg_name": "xendit",
- "credential_format": "api_key_pair",
- "redacted_credentials": {
- "api_key_pair": {
- "public_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz",
- "private_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}
}, - "additional_params": {
- "processing_channel_id": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}, - "charge_config": {
- "request_pg_3ds": true,
- "headless_3ds": false
}
}Delete credentials for a PG of a Partner
| partner_id required | string <uuid> Partner ID |
| pg_name required | string^[\S]+$ PG name |
{- "error_code": "string",
- "message": "string",
- "details": [
- {
- "error_code": "string",
- "message": "string",
- "param": "string"
}
]
}Update whitelabel config of a Partner
| partner_id required | string <uuid> Partner ID |
Array of objects | |||
Array
| |||
{- "features": [
- {
- "property1": "string",
- "property2": "string"
}
]
}{- "features": [
- {
- "property1": "string",
- "property2": "string"
}
]
}QuerRetrievey widget info to display for a Partner
| tenant_partner_id required | string [ 4 .. 36 ] characters ^[a-zA-Z0-9\-_@\.]*$ |
| types | Array of strings (WidgetQueryRequestType) Items Enum: "whitelabel" "net_settlement" |
{- "tenant_partner_id": "string",
- "types": [
- "whitelabel"
]
}[- {
- "widget_access_token": "accessToken",
- "code_snippet": "<iframe/>",
- "type": "whitelabel"
}, - {
- "widget_access_token": "accessToken2",
- "code_snippet": "<iframe/>",
- "type": "net-settlement"
}
]APIs that merchants and payment gateways use with the Open Fabric Merchant SDK to create and manage transactions.
This will be called by Partner to initialize a transaction before interacting with payment methods
| txn_trace_id | string <uuid> Trace UUID (v4) to follow payment sessions |
| Idempotency-Key | string Unique value submitted by the client to ensure idempotent request when creating transaction. |
Transaction object to init
| instrument | string Default: "web_checkout" Instrument of the transaction request. Can be omitted for the |
| tenant_id | string <uuid> OpenFabric Generated ID for the Tenant of the payment method, only for backward-compatibility. If not provided, it will use the ID of the Tenant linked with Partner. |
| partner_redirect_success_url required | string <uri> Redirect URL Configured by Partner - when transaction is approved by Tenant |
| partner_redirect_fail_url required | string <uri> Redirect URL Configured by Partner - when transaction is denied by Tenant |
| partner_reference_id required | string^[a-zA-Z0-9\-_@\.]*$ Transaction ID set by Partner and sent to OpenFabric |
required | object (CustomerInfo) OpenFabric collects the below customer Info Collection from merchants. We will pass-through the collected info to Tenant |
| amount required | number >= 0.01 Transaction amount for which Tenant's authorization is requested |
| currency required | string = 3 characters ^[A-Z]*$ Transaction Currency for which Tenant's authorization is requested (ISO 4217 Alpha-3 currency codes) |
required | object (TransactionDetails) Transaction Details sent by Partner. |
| pg_name | string Payment Gateway name |
| pg_publishable_key | string Payment Gateway's publishable_key |
| pg_flow | string (PGFlow) Enum: "tokenization" "charge" for which flow that Partner would like OF to execute. If it is not set, default to Tokenization |
| pg_additional_params | object Additional parameters required in the card tokenization/charge request for the given Payment Gateway |
{- "partner_reference_id": "P1293201980299030",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_redirect_success_url": "https://sample-merchant-flow.dev.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=PAID",
- "partner_redirect_fail_url": "https://sample-merchant-flow.dev.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=CANCELLED",
- "customer_info": {
- "mobile_number": "+6587654321",
- "first_name": "BNPL",
- "last_name": "Developer",
- "email": "developer@bnpl1.com",
- "partner_reference_id": "cd992711-498f-47be-b636-cf2e3eaad935"
}, - "amount": 120.1,
- "currency": "SGD",
- "transaction_details": {
- "shipping_address": {
- "country": "Singapore",
- "country_code": "SG",
- "address_line_1": "80 Robinson Road",
- "address_line_2": "#09-01",
- "address_line_3": "#09-01",
- "post_code": "068898"
}, - "billing_address": {
- "country": "Singapore",
- "country_code": "SG",
- "address_line_1": "80 Robinson Road",
- "address_line_2": "#09-01",
- "address_line_3": "#09-01",
- "post_code": "068898"
}, - "items": [
- {
- "item_id": "P100",
- "name": "iPhone",
- "price": 11020,
- "quantity": 1,
- "variation_name": "Black, 128GB",
- "original_price": 12020,
- "categories": [
- "Electronics"
]
}, - {
- "item_id": "P101",
- "name": "iPhone SE case",
- "price": 1000,
- "quantity": 1,
- "variation_name": "White",
- "categories": [
- "Accessories"
]
}
], - "tax_amount": 390.6,
- "shipping_amount": 1020,
- "original_amount": 13020
}
}{- "id": "ff0398e5-d045-441f-b130-bcd517964775",
- "partner_reference_id": "P1293201980299030",
- "tenant_reference_id": "Tenant-cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "9bde4fbf-893b-49f9-b7b3-4079a76bb362",
- "tenant_partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "partner_redirect_success_url": "https://sample-merchant-flow.dev.openfabric.co??id=f0398e5-d045-441f-b130-bcd517964775&state=PAID",
- "partner_redirect_fail_url": "https://sample-merchant-flow.dev.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=CANCELLED",
- "customer_id": "88db7aa7-2cdd-42cc-9827-8d46f936ef79",
- "customer_info": {
- "mobile_number": "+6587654321",
- "first_name": "postpebnpl",
- "last_name": "developer",
- "country": "Singapore",
- "country_code": "SG",
- "email": "developer@bnpl1.com"
}, - "amount": 120.1,
- "currency": "SGD",
- "status": "in_progress",
- "created_at": "2021-11-06T04:26:47.450Z",
- "updated_at": "2021-11-06T04:26:47.450Z"
}This will return Detailed Transaction by Open Fabric Reference ID
| id required | string <uuid> |
| txn_trace_id | string <uuid> Trace UUID (v4) to follow payment sessions |
{- "value": {
- "id": "ff0398e5-d045-441f-b130-bcd517964775",
- "partner_reference_id": "P1293201980299030",
- "tenant_reference_id": "Tenant-cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "9bde4fbf-893b-49f9-b7b3-4079a76bb362",
- "tenant_partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "partner_redirect_success_url": "https://sample-merchant-flow.dev.openfabric.co??id=f0398e5-d045-441f-b130-bcd517964775&state=PAID",
- "partner_redirect_fail_url": "https://sample-merchant-flow.dev.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=CANCELLED",
- "customer_id": "88db7aa7-2cdd-42cc-9827-8d46f936ef79",
- "customer_info": {
- "mobile_number": "+6587654321",
- "first_name": "postpebnpl",
- "last_name": "developer",
- "country": "Singapore",
- "country_code": "SG",
- "email": "developer@bnpl1.com"
}, - "amount": 120.1,
- "currency": "SGD",
- "status": "in_progress",
- "created_at": "2021-11-06T04:26:47.450Z",
- "updated_at": "2021-11-06T04:26:47.450Z"
}
}This will refund a transaction that was charged by Open Fabric on behalf of Partner
| id required | string <uuid> |
| Idempotency-Key | string Unique value submitted by the partner to ensure idempotent request when refunding transaction. |
Refund request body
| amount required | number >= 0.001 Refund amount |
| additional_properties | object |
| reason | string |
{- "amount": 10.1,
- "reason": "Out of goods"
}{- "value": {
- "id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "pg_refund_id": "00fcfasfas24r234saf",
- "data": {
- "id": "00fcfasfas24r234saf",
- "external_id": "00fcf0sf-71fb-4349-8c0b-213412349840"
}
}
}This will fetch the transaction by partner reference id
| partner_reference_id required | string |
{- "value": {
- "id": "ff0398e5-d045-441f-b130-bcd517964775",
- "partner_reference_id": "P1293201980299030",
- "tenant_reference_id": "Tenant-cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "9bde4fbf-893b-49f9-b7b3-4079a76bb362",
- "tenant_partner_id": "27666828-57f9-4709-a9a9-84167e091f5f",
- "partner_redirect_success_url": "https://sample-merchant-flow.dev.openfabric.co??id=f0398e5-d045-441f-b130-bcd517964775&state=PAID",
- "partner_redirect_fail_url": "https://sample-merchant-flow.dev.openfabric.co?id=f0398e5-d045-441f-b130-bcd517964775&state=CANCELLED",
- "customer_id": "88db7aa7-2cdd-42cc-9827-8d46f936ef79",
- "customer_info": {
- "mobile_number": "+6587654321",
- "first_name": "postpebnpl",
- "last_name": "developer",
- "country": "Singapore",
- "country_code": "SG",
- "email": "developer@bnpl1.com"
}, - "amount": 120.1,
- "currency": "SGD",
- "status": "in_progress",
- "created_at": "2021-11-06T04:26:47.450Z",
- "updated_at": "2021-11-06T04:26:47.450Z"
}
}With the payment methods input, we identify Partner by access_token, only payment methods available with this Partner will be returned
| txn_trace_id | string <uuid> Trace UUID (v4) to follow payment sessions |
{- "value": [
- {
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "name": "Sample BNPL",
- "slug": "sample-bnpl",
- "tenant_partner_id": "27666828-57f9-4709-a9a9-84167e091f5f"
}
]
}Notification sent to your partner's backend when a transaction is approved.
| txn_id required | string <uuid> OpenFabric Transaction ID |
| txn_ref_id required | string <uuid> Transaction reference ID. Internally it is the equivalent of |
| txn_state required | string (MerchantTransactionStatus) Enum: "in_progress" "approved" "failed" "reversed" Transaction status for Partner |
| txn_amt required | number Transaction amount |
| txn_ccy required | string Transaction currency |
| txn_app_amt required | number Transaction approved amount |
| txn_app_ccy required | string Transaction approved currency |
| txn_created_at required | string <date-time> |
| txn_updated_at required | string <date-time> |
| txn_tenant_id | string |
| txn_card_token | string Short-lived token to access the VCN details generated for the
transaction. Internally it is the equivalent of |
| txn_pg | string Payment gateway name. Used for PG integrated flow |
| txn_pg_token | string Payment gateway token. Used for PG integrated flow |
| txn_pg_charge_id | string id of the charge transaction sent back from pg |
| txn_pg_response | object |
{- "txn_id": "ff0398e5-d045-441f-b130-bcd517964775",
- "txn_ref_id": "P1293201980299030",
- "txn_state": "approved",
- "txn_amt": 120.1,
- "txn_ccy": "SGD",
- "txn_app_amt": 120.1,
- "txn_app_ccy": "SGD",
- "txn_created_at": "2021-11-06T04:26:47.450Z",
- "txn_updated_at": "2021-11-06T04:26:47.450Z",
- "txn_pg": "stripe",
- "txn_pg_token": "YTZkYmJkYWItMWI3ZC00MzNhLTkzOWEtZjYzYzkwMjJmODMz"
}Notification sent to your partner's backend when a transaction is failed.
| txn_id required | string <uuid> OpenFabric Transaction ID |
| txn_ref_id required | string <uuid> Transaction reference ID. Internally it is the equivalent of |
| txn_state required | string (MerchantTransactionStatus) Enum: "in_progress" "approved" "failed" "reversed" Transaction status for Partner |
| txn_created_at required | string <date-time> |
| txn_updated_at required | string <date-time> |
| txn_tenant_id | string |
| txn_reason | string Reason to decline the transaction, submitted by Tenant. |
{- "txn_id": "ff0398e5-d045-441f-b130-bcd517964775",
- "txn_ref_id": "P1293201980299030",
- "txn_state": "failed",
- "txn_created_at": "2021-11-06T04:26:47.450Z",
- "txn_updated_at": "2021-11-06T04:26:47.450Z",
- "txn_reason": "Insufficient amount"
}APIs that merchants and payment gateways use to manage their integration settings.
Update webhook subscription and PG credentials settings of a Partner
Webhook and PG credentials details request for Partner
object (AccountNotificationSubscriptionRequest) | |
object |
{- "value": {
- "webhook": {
- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}, - "payment_gateway": {
- "pg_name": "xendit",
- "credential_format": "api_key_pair",
- "credentials": {
- "api_key_pair": {
- "public_api_key": "pk-rdjftkyghjl9876543210",
- "private_api_key": "sk-rdjftkyghjl9876543210"
}
}
}
}
}{- "webhook": {
- "id": "cd992711-498f-47be-b636-cf2e3eaad935",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "00fcf093-71fb-4349-8c0b-de810480d6b2",
- "type": "webhook",
- "subscribed_events": [
- "*"
], - "config": {
- "authConfig": {
- "header": "X-API-Key",
- "value": "HxMrzQBFbaDeLkUar87nczWNi"
}
}
}, - "payment_gateway": {
- "id": "143334c3-1b7d-433a-939a-f63c9022f800",
- "tenant_id": "00fcf093-71fb-4349-8c0b-de810480d6b1",
- "partner_id": "00fcf093-71fb-4349-8c0b-de810480d6b2",
- "pg_name": "xendit",
- "credential_format": "api_key_pair",
- "redacted_credentials": {
- "api_key_pair": {
- "public_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz",
- "private_api_key": "aDSlnuizcvjsdl89ucIOasdzxczxczxckjzxkcjzsODMz"
}
}
}
}