The Prysym APIs are designed to enable clients to make and receive payments globally by quickly and easily integrating into their native systems without knowing how arcane payment systems work globally or even having many details about the recipient. We’ve integrated a combination of more common methods, new services as well novel techniques pioneered by the company representing the most diverse and ever expanding final-mile payment options possible. This enables the client to make an instant payment to anyone, anywhere and enables the recipient to decide the best way to access their money. (The above is subject to sanctions and regulated entity approvals).
To make API calls, include the bearer token in the Authorization header with the Bearer authentication scheme.
The value is Bearer <Your-Secret-Key>.
The URL to the API service is either:
Live. https://api.prysym.com
APIs use the Status-Line part of an HTTP response message to inform clients of their request’s overarching result.
HTTP defines over 40 standard status codes that can be used to convey the results of a client’s request. The status codes are divided into the five categories presented here:
| Error Code | Error Description |
|---|---|
| UNAUTHORIZED | Missing or invalid API Key provided. |
| INVALID_REQUEST | The request provided is invalid. Please check details field for more details. |
This optional API endpoint securely saves customer card details and returns a unique identifier (token) that can be used for subsequent transaction processing
| type required | string Value: "CARD" |
| holder_name required | string Cardholder's full name. |
| number required | string [ 13 .. 19 ] characters Card number |
| expiration required | object Card expiration. For card payment instruments, year and month are required. |
| reference | string <= 70 characters Merchant reference for the transaction |
| association_name | string Enum: "Amex" "Diners" "Discover" "JCB" "MasterCard" "Visa" Association name |
| billing required | object Billing information. For card payment instruments, address.line1 and address.postal_code are required. |
OK
{- "type": "CARD",
- "holder_name": "John Doe",
- "number": "4111111111111111",
- "expiration": {
- "month": "04",
- "year": "2027"
}, - "reference": "EXT-REF-0001",
- "association_name": "Amex",
- "billing": {
- "address": {
- "country_code": "US",
- "country_subdivision_code": "NY",
- "city": "New York",
- "postal_code": "10001",
- "line1": "123 Main St",
- "line2": "Apt 4B"
}
}
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-000000000001",
- "type": "CARD",
- "holder_name": "John Doe",
- "number_last4": "1111",
- "expiration": {
- "month": "04",
- "year": "2027"
}, - "billing": {
- "address": {
- "country_code": "US",
- "country_subdivision_code": "NY",
- "city": "New York",
- "postal_code": "10001",
- "line1": "123 Main St",
- "line2": "Apt 4B"
}
}, - "association_name": "Amex",
- "check_name": "John Doe",
- "check_aba": "021000021",
- "check_account": "123456789",
- "account_holder_type": "business",
- "account_type": "checking",
- "sec_code": "PPD"
}
}This optional API endpoint securely update customer card details and returns a unique identifier (token) that can be used for subsequent transaction processing
| id required | string <uuid> Id |
| holder_name | string Cardholder's full name. |
| number | string [ 13 .. 19 ] characters Card number |
| expiration | object Card expiration |
| billing | object Billing information |
| reference | string <= 70 characters Merchant reference for the transaction |
| association_name | string Enum: "Amex" "Diners" "Discover" "JCB" "MasterCard" "Visa" Association name |
| check_name | string Check name |
| check_aba | string Check aba |
| check_account | string Check account |
| account_holder_type | string Enum: "business" "personal" |
| account_type | string Enum: "checking" "savings" |
| sec_code | string Enum: "PPD" "WEB" "TEL" "CCD" |
OK
{- "id": "00000000-0000-0000-0000-000000000001",
- "holder_name": "John Doe",
- "number": "4111111111111111",
- "expiration": {
- "month": "04",
- "year": "2027"
}, - "billing": {
- "address": {
- "country_code": "US",
- "country_subdivision_code": "NY",
- "city": "New York",
- "postal_code": "10001",
- "line1": "123 Main St",
- "line2": "Apt 4B"
}
}, - "reference": "EXT-REF-0001",
- "association_name": "Amex",
- "check_name": "John Doe",
- "check_aba": "021000021",
- "check_account": "123456789",
- "account_holder_type": "business",
- "account_type": "checking",
- "sec_code": "PPD"
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-000000000001",
- "type": "CARD",
- "holder_name": "John Doe",
- "number_last4": "1111",
- "expiration": {
- "month": "04",
- "year": "2027"
}, - "billing": {
- "address": {
- "country_code": "US",
- "country_subdivision_code": "NY",
- "city": "New York",
- "postal_code": "10001",
- "line1": "123 Main St",
- "line2": "Apt 4B"
}
}, - "association_name": "Amex",
- "check_name": "John Doe",
- "check_aba": "021000021",
- "check_account": "123456789",
- "account_holder_type": "business",
- "account_type": "checking",
- "sec_code": "PPD"
}
}This API endpoint retrieves the details of previously saved card information associated with a unique identifier (token).
| id required | string ID of the object |
OK
{- "id": "00000000-0000-0000-0000-000000000001"
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-000000000001",
- "type": "CARD",
- "holder_name": "John Doe",
- "number_last4": "1111",
- "expiration": {
- "month": "04",
- "year": "2027"
}, - "billing": {
- "address": {
- "country_code": "US",
- "country_subdivision_code": "NY",
- "city": "New York",
- "postal_code": "10001",
- "line1": "123 Main St",
- "line2": "Apt 4B"
}
}, - "association_name": "Amex",
- "check_name": "John Doe",
- "check_aba": "021000021",
- "check_account": "123456789",
- "account_holder_type": "business",
- "account_type": "checking",
- "sec_code": "PPD"
}
}This API endpoint processes both Authorization and Purchase. Purchase - a transaction that is used to authorize and capture the amount in one transaction. Authorization – a transaction that is used to transmit an authorization request where it is not captured for settlement processing. A subsequent Capture transaction is then submitted to be captured for settlement processing.
| program_id required | string <uuid> Program ID provided by Prysym |
| merchant_id required | string <uuid> Merchant ID |
| terminal_id | string <uuid> Terminal ID |
| type required | string Enum: "AUTHORIZATION" "PURCHASE" "VERIFICATION" Type of transaction |
| currency_code | string Default: "USD" ISO 4217 currency code. Defaults to USD if omitted. |
| amount required | number <double> Transaction amount |
| pos_cond_code | string Default: "59" Enum: "00" "01" "02" "03" "04" "05" "06" "08" "59" "71" POS Condition Code. Defaults to 59 (E-commerce) if omitted. |
| reference | string [ 1 .. 70 ] characters Merchant reference for the transaction |
| card_holder_ip | string Card holder ip |
| stored_payment_instrument | object Either stored_payment_instrument or payment_instrument details are required |
| payment_instrument | object Either stored_payment_instrument or payment_instrument details are required |
OK
{- "program_id": "00000000-0000-0000-0000-000000000100",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "type": "AUTHORIZATION",
- "currency_code": "USD",
- "amount": "12.00",
- "pos_cond_code": "00",
- "reference": "EXT-REF-0001",
- "card_holder_ip": "203.0.113.10",
- "stored_payment_instrument": {
- "id": "00000000-0000-0000-0000-000000000001",
- "security_code": "123"
}, - "payment_instrument": {
- "holder_name": "John Doe",
- "number": "4111111111111111",
- "expiration_date": "2027-04",
- "security_code": "123",
- "billing": {
- "address": {
- "country_code": "US",
- "country_subdivision_code": "NY",
- "city": "New York",
- "postal_code": "10001",
- "line1": "123 Main St",
- "line2": "Apt 4B"
}
}, - "association_name": "Amex"
}
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-000000000001",
- "program_id": "00000000-0000-0000-0000-000000000100",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "currency_code": "USD",
- "amount": "12.00",
- "type": "AUTHORIZATION",
- "status": "COMPLETED",
- "reference": "EXT-REF-0001",
- "payment_instrument_id": "00000000-0000-0000-0000-000000000400",
- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "auth_id": "ABC123",
- "fd_merchant_id": "RCTST1000084652",
- "bank_net_data": "BankNetData",
- "fd_terminal_id": "00000001",
- "status_code": "000",
- "status_desc": "Approved",
- "avs_result_code": "Y",
- "response_date": "2024-01-15",
- "addtl_resp_data": "APPROVAL",
- "sttlm_date": "2024-01-15",
- "ath_ntwk_id": "0001",
- "ath_ntwk_nm": "VISA",
- "rt_ind": "0",
- "sig_ind": "0",
- "ccv_result_code": "M",
- "error_data": "Card declined",
- "debit_trace_num": "000123",
- "ath_ntwk_trc_id": "123456789012345",
- "settlement_txn_type": "SALE",
- "print_data": "APPROVED",
- "assoc_resp_code": "00",
- "created_at": "2024-01-15T10:30:00"
}
}Capture – a transaction that is used to submit for settlement a previously approved Authorization.
| originaltransaction_id required | string <uuid> ID of the original transaction |
| type required | string Value: "CAPTURE" |
| amount | number <double> Amount to capture. If omitted, the full authorized amount is captured. |
| reference | string <= 70 characters Merchant reference for the transaction |
| card_holder_ip | string <= 40 characters Card holder ip |
OK
{- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "type": "CAPTURE",
- "amount": "12.00",
- "reference": "EXT-REF-0001",
- "card_holder_ip": "203.0.113.10"
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-000000000001",
- "program_id": "00000000-0000-0000-0000-000000000100",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "currency_code": "USD",
- "amount": "12.00",
- "type": "AUTHORIZATION",
- "status": "COMPLETED",
- "reference": "EXT-REF-0001",
- "payment_instrument_id": "00000000-0000-0000-0000-000000000400",
- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "auth_id": "ABC123",
- "fd_merchant_id": "RCTST1000084652",
- "bank_net_data": "BankNetData",
- "fd_terminal_id": "00000001",
- "status_code": "000",
- "status_desc": "Approved",
- "avs_result_code": "Y",
- "response_date": "2024-01-15",
- "addtl_resp_data": "APPROVAL",
- "sttlm_date": "2024-01-15",
- "ath_ntwk_id": "0001",
- "ath_ntwk_nm": "VISA",
- "rt_ind": "0",
- "sig_ind": "0",
- "ccv_result_code": "M",
- "error_data": "Card declined",
- "debit_trace_num": "000123",
- "ath_ntwk_trc_id": "123456789012345",
- "settlement_txn_type": "SALE",
- "print_data": "APPROVED",
- "assoc_resp_code": "00",
- "created_at": "2024-01-15T10:30:00"
}
}Refund – a transaction that is used to credit funds to the account holder.
| originaltransaction_id required | string ID of the original transaction |
| type required | string Value: "REFUND" |
| amount | number <double> Amount to refund. If omitted, the full transaction amount is refunded. |
| reference | string <= 70 characters Merchant reference for the transaction |
| card_holder_ip | string <= 40 characters Card holder ip |
OK
{- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "type": "REFUND",
- "amount": "12.00",
- "reference": "EXT-REF-0001",
- "card_holder_ip": "203.0.113.10"
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-000000000001",
- "program_id": "00000000-0000-0000-0000-000000000100",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "currency_code": "USD",
- "amount": "12.00",
- "type": "AUTHORIZATION",
- "status": "COMPLETED",
- "reference": "EXT-REF-0001",
- "payment_instrument_id": "00000000-0000-0000-0000-000000000400",
- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "auth_id": "ABC123",
- "fd_merchant_id": "RCTST1000084652",
- "bank_net_data": "BankNetData",
- "fd_terminal_id": "00000001",
- "status_code": "000",
- "status_desc": "Approved",
- "avs_result_code": "Y",
- "response_date": "2024-01-15",
- "addtl_resp_data": "APPROVAL",
- "sttlm_date": "2024-01-15",
- "ath_ntwk_id": "0001",
- "ath_ntwk_nm": "VISA",
- "rt_ind": "0",
- "sig_ind": "0",
- "ccv_result_code": "M",
- "error_data": "Card declined",
- "debit_trace_num": "000123",
- "ath_ntwk_trc_id": "123456789012345",
- "settlement_txn_type": "SALE",
- "print_data": "APPROVED",
- "assoc_resp_code": "00",
- "created_at": "2024-01-15T10:30:00"
}
}Void cancels a transaction that has not yet settled. A transaction can be voided while its status is APPROVED, PENDING, or COMPLETED.
| originaltransaction_id required | string ID of the original transaction |
| type required | string Value: "VOID" |
| reference | string <= 70 characters Merchant reference for the transaction |
OK
{- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "type": "VOID",
- "reference": "EXT-REF-0001"
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-000000000001",
- "program_id": "00000000-0000-0000-0000-000000000100",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "currency_code": "USD",
- "amount": "12.00",
- "type": "AUTHORIZATION",
- "status": "COMPLETED",
- "reference": "EXT-REF-0001",
- "payment_instrument_id": "00000000-0000-0000-0000-000000000400",
- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "auth_id": "ABC123",
- "fd_merchant_id": "RCTST1000084652",
- "bank_net_data": "BankNetData",
- "fd_terminal_id": "00000001",
- "status_code": "000",
- "status_desc": "Approved",
- "avs_result_code": "Y",
- "response_date": "2024-01-15",
- "addtl_resp_data": "APPROVAL",
- "sttlm_date": "2024-01-15",
- "ath_ntwk_id": "0001",
- "ath_ntwk_nm": "VISA",
- "rt_ind": "0",
- "sig_ind": "0",
- "ccv_result_code": "M",
- "error_data": "Card declined",
- "debit_trace_num": "000123",
- "ath_ntwk_trc_id": "123456789012345",
- "settlement_txn_type": "SALE",
- "print_data": "APPROVED",
- "assoc_resp_code": "00",
- "created_at": "2024-01-15T10:30:00"
}
}List the status codes and status Code Description
| program_id required | string <uuid> Program ID provided by Prysym |
| codes | Array of strings List of codes |
OK
{- "program_id": "00000000-0000-0000-0000-000000000100",
- "codes": [
- "string"
]
}{- "status": "SUCCESS",
- "data": [
- {
- "responseCode": "000",
- "responseCodeDescription": "Approved"
}
]
}Response of last api call
| program_id required | string <uuid> Program ID provided by Prysym |
| reference required | string <= 70 characters Merchant reference for the transaction |
OK
{- "program_id": "00000000-0000-0000-0000-000000000100",
- "reference": "EXT-REF-0001"
}{- "status": "SUCCESS",
- "data": [
- {
- "id": "00000000-0000-0000-0000-000000000001",
- "type": "REQUEST",
- "reference": "EXT-REF-0001",
- "createdTime": "2024-08-08",
- "eventType": "ACQUIRING",
- "clientId": "00000000-0000-0000-0000-000000000600",
- "programId": "00000000-0000-0000-0000-000000000100",
- "merchantId": "00000000-0000-0000-0000-000000000200",
- "eventId": "00000000-0000-0000-0000-000000000500",
- "body": { },
- "error": "Card declined"
}
]
}This API endpoint allows to retrieve transaction details using a unique transaction identifier (ID)
| id required | string ID of the object |
OK
{- "id": "00000000-0000-0000-0000-000000000001"
}{- "id": "00000000-0000-0000-0000-000000000001",
- "payment_instrument_id": "00000000-0000-0000-0000-000000000400",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "program_id": "00000000-0000-0000-0000-000000000100",
- "amount": "12.00",
- "currency_code": "USD",
- "status": "COMPLETED",
- "created_at": "2024-01-15T10:30:00",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "reference": "EXT-REF-0001",
- "type": "PURCHASE",
- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "status_code": "000",
- "status_desc": "Approved",
- "bank_net_data": "BankNetData",
- "auth_id": "ABC123",
- "ccv_result_code": "M",
- "avs_response": "Y",
- "response_group": {
- "resp_code": "00",
- "auth_id": "ABC123",
- "response_date": "2024-01-15",
- "addtl_resp_data": "APPROVAL",
- "sttlm_date": "2024-01-15",
- "ath_ntwk_id": "0001",
- "ath_ntwk_nm": "VISA",
- "rt_ind": "0",
- "sig_ind": "0",
- "error_data": "Card declined",
- "debit_trace_num": "000123",
- "ath_ntwk_trc_id": "123456789012345",
- "settlement_txn_type": "SALE",
- "print_data": "APPROVED",
- "assoc_resp_code": "00"
}, - "refunded_amount": "0.00"
}This API endpoint retrieves a list of transactions associated with a specified merchant, allowing for various filters to be applied
| offset | number <integer> Default: 0 The number of records to skip before starting to return results |
| limit | number <integer> Default: 20 The maximum number of records to return in the response |
| filters required | object Filters query results based on specified key-value pairs |
| sort | object Define the sorting order of results by specifying a column and direction |
OK
{- "offset": 0,
- "limit": 20,
- "filters": {
- "status": [
- "COMPLETED"
], - "amount": "12.00",
- "transaction_type": [
- "AUTHORIZATION"
], - "card_type": [
- "Amex"
], - "merchant_id": "00000000-0000-0000-0000-000000000200",
- "card_last4": "1111",
- "name_on_card": "John Doe",
- "authorization_code": "ABC123",
- "stan": "123456",
- "reference": "EXT-REF-0001",
- "id": "00000000-0000-0000-0000-000000000001",
- "transaction_date": {
- "from": "2024-08-08",
- "to": "2024-08-28"
}
}, - "sort": {
- "field": "20",
- "type": "ASC"
}
}{- "data": [
- {
- "id": "00000000-0000-0000-0000-000000000001",
- "transaction_type": "AUTHORIZATION",
- "destination_id": "00000000-0000-0000-0000-000000000000",
- "amount": "12.00",
- "local_time": "2024-09-27T15:20:45.327",
- "transmission_time": "2024-09-27T15:20:45.327",
- "currency_code": "USD",
- "stan": "123456",
- "reference": "EXT-REF-0001",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "merchant_name": "Acme Store",
- "card_number": "411111******1111",
- "pos_entry_mode": "051",
- "response_code": "00",
- "status": "COMPLETED",
- "authorization_id": "ABC123",
- "card_brand": "Amex"
}
], - "paging": {
- "offset": 0,
- "limit": 20,
- "totalCount": "20"
}
}Prysym sends webhooks to notify your systems of events as they happen — card transactions, settlements, chargebacks and merchant onboarding updates. Each event is delivered as an HTTP POST with a JSON body to the URL registered on your subscription. The destination must be an https URL on a publicly resolvable host; plain http, private ranges and loopback addresses are rejected when the subscription is created or updated.
Delivery is at-least-once: the same event may arrive more than once, so treat event_id as an idempotency key. Respond with any 2xx status to acknowledge receipt. A timeout, a 5xx, a 408 or a 429 is retried; any other 4xx is treated as a permanent rejection and the delivery is dead-lettered without a second attempt. The event id is also sent in a Webhook-Id header, so you can discard a redelivery without parsing the body.
Create a subscription with the Create Webhook Subscription endpoint, supplying the destination url, a secret_key used to sign deliveries, and optionally the event_types you want (omit to receive all). Events begin flowing immediately; no further setup is required.
Every delivery is signed so you can confirm it came from Prysym and was not altered in transit. The signature is sent in the x-webhook-signature header and is computed with HMAC-SHA256 over the timestamp and the raw request body, keyed with your subscription secret.
The value that is signed is "{t}.{raw_body}". The leading timestamp binds the signature to a point in time so you can reject stale or replayed requests. During a secret rotation the header carries more than one v1= signature (one per active secret); accept the delivery if any of them matches.
Step 4 is the only part that has to be exact, so it is the only part shown here. Each snippet takes four values and produces the same Base64 signature; how you parse the header, apply your tolerance window and reject a bad delivery is up to you.
To change a subscription's secret without missing deliveries, call Rotate Secret with the new value. Prysym then signs each delivery with both the old and new secrets (two v1= signatures), so consumers on either side of your deployment can verify. Once every consumer has the new secret, call Complete Rotation to drop the old one.
A retryable failure (a timeout, a 5xx, a 408 or a 429) is retried automatically with exponential backoff and jitter: up to 12 attempts, starting at 30 seconds and doubling to a 6 hour ceiling, each delay varied by up to 20%. Any other 4xx is permanent and is dead-lettered on the first attempt, because a rejected payload will be rejected again. After the maximum number of attempts the delivery is moved to a dead-letter state and is no longer retried automatically. Pausing a subscription (active false) stops new events being queued for it, but deliveries already queued are still attempted; deleting the subscription stops those too.
Inspect deliveries — including the dead-letter queue — with the List Deliveries endpoint, filtering on status (for example, ["DEAD"]). Re-queue an individual delivery with Retry Delivery. Delivered records are kept for 365 days and then purged; dead-lettered ones are kept until you act on them.
Each sample below is the full delivered body: the envelope wrapping a type-specific event_body.
Registers a subscription that will start receiving events at the given URL. The destination must be https on a publicly resolvable host; plain http, private ranges and loopback are rejected with WEBHOOK_URL_NOT_ALLOWED. A merchant may hold several subscriptions and duplicate URLs are not rejected.
| merchant_id required | string <uuid> Merchant the subscription belongs to |
| url required | string <uri> HTTPS endpoint that will receive events |
| secret_key required | string [ 20 .. 100 ] characters Signing secret (HMAC-SHA256) used to sign deliveries. Must be sent as a JSON string: a numeric value is rejected, because a long number loses digits in some JSON serialisers and the stored key would no longer match yours. |
| event_types | Array of strings (WebhookEventType) Items Enum: "ACQUIRING" "SETTLEMENT" "CHARGEBACK" "ONBOARDING" Event categories to receive; omit to receive all |
OK
{- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "secret_key": "whsec_0123456789abcdefghij",
- "event_types": [
- "ACQUIRING",
- "SETTLEMENT"
]
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-0000000000a1",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "event_types": [
- "ACQUIRING",
- "SETTLEMENT"
], - "signature_version": "v1",
- "active": true,
- "created_at": "2024-01-15T10:30:00"
}
}Returns the calling client's webhook subscriptions, newest first unless sort is given. Filter by id to read a single subscription back, by url to check whether a destination is already subscribed, or by merchant_id, active, event_type and created_at. Soft-deleted subscriptions are excluded; paused ones are included.
| offset | number <integer> Default: 0 The number of records to skip before starting to return results |
| limit | number <integer> Default: 20 The maximum number of records to return in the response; capped at 200 |
| filters | object Filter request query |
| sort | object Orders the results. Omit for newest subscription first. |
OK
{- "offset": 0,
- "limit": 20,
- "filters": {
- "id": "00000000-0000-0000-0000-000000000300",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "active": false,
- "event_type": "SETTLEMENT",
- "created_at": {
- "from": "2024-08-08",
- "to": "2024-08-28"
}
}, - "sort": {
- "field": "created_at",
- "type": "ASC"
}
}{- "status": "SUCCESS",
- "data": [
- {
- "id": "00000000-0000-0000-0000-0000000000a1",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "event_types": [
- "ACQUIRING",
- "SETTLEMENT"
], - "signature_version": "v1",
- "active": true,
- "created_at": "2024-01-15T10:30:00"
}
], - "paging": {
- "offset": 0,
- "limit": 20,
- "totalCount": "20"
}
}Updates the URL, secret, event types, or active flag of a subscription.
| id required | string <uuid> Subscription ID |
| url | string <uri> HTTPS endpoint that will receive events |
| secret_key | string [ 20 .. 100 ] characters Signing secret (HMAC-SHA256). Must be sent as a JSON string. |
| event_types | Array of strings (WebhookEventType) Items Enum: "ACQUIRING" "SETTLEMENT" "CHARGEBACK" "ONBOARDING" Event categories to receive |
| active | boolean Enable or disable delivery for this subscription. Setting it to false stops new events being queued, but deliveries already queued are still attempted; delete the subscription instead to stop those too. |
OK
{- "secret_key": "whsec_0123456789abcdefghij",
- "event_types": [
- "ACQUIRING"
], - "active": true
}{- "status": "SUCCESS",
- "data": {
- "id": "00000000-0000-0000-0000-0000000000a1",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "event_types": [
- "ACQUIRING",
- "SETTLEMENT"
], - "signature_version": "v1",
- "active": true,
- "created_at": "2024-01-15T10:30:00"
}
}Permanently removes a subscription. No further events are delivered to it.
| id required | string <uuid> Subscription ID |
OK
{- "status": "SUCCESS"
}Starts a dual-secret window: deliveries are signed with both the old and new secret until rotation is completed.
| id required | string <uuid> Subscription ID |
| secret_key required | string [ 20 .. 100 ] characters New signing secret, sent as a JSON string. Both the old and new secrets are honoured until rotation is completed. |
OK
{- "secret_key": "whsec_9876543210zyxwvutsrq"
}{- "status": "SUCCESS"
}Ends the rotation window and drops the previous secret. Only the new secret is used afterwards.
| id required | string <uuid> Subscription ID |
OK
{- "status": "SUCCESS"
}Returns a paginated list of deliveries, newest event first unless sort is given. One event produces one delivery per matching subscription. Filter on event_id to find every delivery of an event you received, on status (for example ["DEAD"]) for the dead-letter view, or on event_type and created_at.
| offset | number <integer> Default: 0 The number of records to skip before starting to return results |
| limit | number <integer> Default: 20 The maximum number of records to return in the response; capped at 200 |
| filters | object Filter request query |
| sort | object Orders the results. Omit for newest event first. |
OK
{- "offset": 0,
- "limit": 20,
- "filters": {
- "delivery_id": "00000000-0000-0000-0000-000000000001",
- "event_id": "00000000-0000-0000-0000-000000000500",
- "subscription_id": "00000000-0000-0000-0000-000000000300",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "event_type": "SETTLEMENT",
- "status": [
- "DEAD",
- "RETRYING"
], - "created_at": {
- "from": "2024-08-08",
- "to": "2024-08-28"
}
}, - "sort": {
- "field": "next_attempt_at",
- "type": "ASC"
}
}{- "status": "SUCCESS",
- "data": [
- {
- "delivery_id": "00000000-0000-0000-0000-000000000001",
- "event_id": "00000000-0000-0000-0000-000000000500",
- "subscription_id": "00000000-0000-0000-0000-000000000300",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "event_type": "ACQUIRING",
- "status": "DELIVERED",
- "attempts": 3,
- "last_attempt_at": "2024-01-15T10:30:00",
- "next_attempt_at": "2024-01-15T10:30:00",
- "last_status_code": 500,
- "last_error": "timeout",
- "created_at": "2024-01-15T10:30:00",
- "event_body": {
- "id": "00000000-0000-0000-0000-000000000001",
- "programId": "00000000-0000-0000-0000-000000000100",
- "merchant_id": "00000000-0000-0000-0000-000000000200",
- "terminal_id": "00000000-0000-0000-0000-000000000300",
- "currency_code": "USD",
- "amount": "12.00",
- "type": "AUTHORIZATION",
- "status": "COMPLETED",
- "payment_instrument_id": "00000000-0000-0000-0000-000000000400",
- "originaltransaction_id": "00000000-0000-0000-0000-000000000002",
- "auth_id": "ABC123",
- "fd_merchant_id": "RCTST1000084652",
- "bank_net_data": "BankNetData",
- "fd_terminal_id": "00000001",
- "created_at": "2024-01-15T10:30:00",
- "status_code": "000",
- "status_desc": "Approved",
- "avs_result_code": "Y",
- "ccv_result_code": "M",
- "response_date": "2024-01-15",
- "addtl_resp_data": "APPROVAL",
- "sttlm_date": "2024-01-15",
- "ath_ntwk_id": "0001",
- "ath_ntwk_nm": "VISA",
- "rt_ind": "0",
- "sig_ind": "0",
- "error_data": "Card declined",
- "debit_trace_num": "000123",
- "ath_ntwk_trc_id": "123456789012345",
- "settlement_txn_type": "SALE",
- "print_data": "APPROVED",
- "assoc_resp_code": "00",
- "merchant_category_code": "5965",
- "is_non_us_merchant": false,
- "merchant_country_code": 840,
- "card_brand": "VISA",
- "customer_info": {
- "postal_code": "11747",
- "billing_address": "1307 Broad Hollow Road"
}, - "issuing_system_data": {
- "card_brand": "VISA"
}
}
}
], - "paging": {
- "offset": 0,
- "limit": 20,
- "totalCount": "20"
}
}Re-queues a single delivery for the relay. Resets it to PENDING with a full retry budget; works on dead-lettered deliveries too. The id is a delivery_id from the list response, not the event_id delivered in the payload: an event id returns 404, and its deliveries are found by filtering on event_id.
| id required | string <uuid> Delivery ID — the delivery_id from List Deliveries, NOT the event_id sent in the webhook payload. |
OK
{- "status": "SUCCESS"
}