This document will show you how to use Signifyd's REST API to authenticate, make requests, and retrieve data. All responses to and from the API will be in JSON.
If you are a Signifyd customer and would like to access Enterprise API documentation, please log in here and navigate to the Resource Center within Developer Tools.
Documentation for the now deprecated Signifyd V2 APIs can be found here.
We only update the version of our API when a non backwards-compatible change is made. Signifyd considers the following changes to be backwards-compatible:
We use conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, invalid syntax, etc.), and codes in the 5xx range indicate an error with Signifyd's servers.
Code | Description |
---|---|
200 |
Success - Request completed. |
201 |
Success - New resource created. |
202 |
Success - The request has been accepted, but not yet processed. |
204 |
Success - No content to return. |
400 |
Bad Request - The request could not be parsed, generally due to bad syntax. |
401 |
Unauthorized - The request could not be authenticated due to missing or invalid credentials. |
403 |
Forbidden - You do not have permission to access to the resource. |
404 |
Not Found - The resource doesn't exist. |
409 |
Conflict - The with state of the resource on server. Can occur with (too rapid) PUT requests. |
429 |
The request was not accepted because the application has exceeded the rate limit. |
500 |
Internal Server Error - An internal error occurred in Signifyd. |
503 |
Service Unavailable - The server is currently unavailable. Check the status page for reported outages. |
504 |
Gateway Timeout - The request could not complete in time. |
Our API uses the ISO8601 date format for complete date plus hours, minutes, seconds and timezone offset.
yyyy-MM-dd'T'HH:mm:ssZ
For UTC: 2015-11-03T13:21:58+00:00
For PST: 2015-11-03T13:21:58-08:00
If a parameter is marked as required
, it means the API call will fail with a 400
status code if the parameter is not included in
the request. If a parameter is marked as needed
, it means you must provide the value if you can. The request will not fail if
you do not provide a needed
parameter because there are varied user flows, and the data may not always be available for every
flow. Before going live, however, our implementations team will validate that needed
parameters are always provided in relevant
buyer flows.
All server-side API requests must be made over HTTPS using a base64 encoded API key. You can generate an API key by creating a team in settings page.
basic
Signifyd’s device fingerprinting solution uniquely tracks and identifies devices and behaviors used by customers and criminals that are attempting transactions on your site. If your integration includes a mobile application (iOS or Android), testing will need to be coordinated with Signifyd during implementation.
Place the following script just before the closing </head>
tag on all public facing pages. The script loads
asynchronously and does not affect page load time.
We recommend that you load the script on all public user-facing pages. If you are unable to load the script on all pages you must load the script on the page Signifyd is evaluating (meaning a login, checkout, or return page as relevant).
<script
defer
type="text/javascript"
id="sig-api"
data-order-session-id="YOUR-SESSION-ID-HERE"
src="https://cdn-scripts.signifyd.com/api/script-tag.js"></script>
Replace data-order-session-id
with a unique session id for the current user's checkout. We recommend appending with
a Signifyd Team ID number if you have multiple teams.
A new session id should be set after each successful checkout event or after 24 hours and must be formatted as follows:
After an event (e.g.: a login, an order, a return) is completed on your website you will need to add the value you used for data-order-session-id to the body of the API POST request to the corresponding API under the device object:
// Create an Order
// https://api.signifyd.com/v3/orders/events/sales
// Body
{
"device": {
"clientIPAddress": "192.168.1.1",
"sessionID": "YOUR-SESSION-ID-HERE",
…
}
}
View the checkout or sale docs for additional information on creating orders.
During testing you may want to confirm that the Signifyd device fingerprinting script is working correctly.
To do so you can may open the dev tools on your browser and check that sigScriptLoader.isInitialized
is set to true
.
When an issue occurs within the Signifyd device fingerprinting script an error message is displayed in the browsers developer console tab. You may also want the ability to be aware of this within your application or perform an action when an error happens.
The Signifyd device fingerprinting script dispatches an event whenever an error occurs that can be received by the
invoking application. The event type is sigScriptError
and this can be listened for via an event listener to handle
the outcome of an error being raised.
Below is an example of listening for the error event:
<script>
document.addEventListener('sigScriptError', function (error) {
// Logic that happens whenever error occurs within Signifyd device fingerprinting script
// Details of error can be found in error.detail
console.log('Error details: ', error.detail)
})
</script>
Use the Checkout APIs if you're executing a PreAuth flow where you call into Signifyd before authorizing a payment with your Payment Gateway. For each Order, you will make at least 2 API calls, a Checkout
call prior to payment authorization and a Transaction
after authorization. If you prefer to execute a PostAuth flow, see the Sale
API.
To create an Order in the Signifyd system in a PreAuth flow, you need to record a Checkout Event. A checkout
event represents the completion of a purchase flow by a buyer. This call should be instrumented before you
call your Payment Gateway. Following the call to your gateway, you must complete the Checkout with a call to Transaction
.
If a past checkout event has been received and it had the same orderId as this one, then the entire Order will be updated to reflect the new details. If you would like to do a partial update, there are other events to accomplish that.
Orders can be updated a maximum of 100 times for a new decision. Any updates following the 100th update will
result in a decision.checkpointAction
value of REJECT
.
Policies for this event can be instrumented in Decision Center at the Checkout checkpoint.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
checkoutId required | string (CheckoutId) Unique identifier for a checkout. |
object (Device) Data about the device that was used by the user to complete the actions. | |
object (MerchantPlatform) Details about the merchant's commerce platform. | |
object (SignifydClient) For internal use only. Provides Signifyd details about the Signifyd plugin that a merchant is using. | |
Array of PreAuthCardTransaction (object) or PreAuthBankTransaction (object) or PreAuthPayPalTransaction (object) or PreAuthGenericTransaction (object) (PreAuthTransactions) A list of payment authorizations that will be attempted to pay for the order. | |
additionalEvalRequests | Array of strings (AdditionalEvalRequests) Items Value: "SCA_EVALUATION" The types of additional evaluations requested. If no additional evaluation object is provided or is empty, additional evaluation will not take place. For further information please contact your Signifyd Implementation Manager.
|
decisionMechanism | string (DecisionMechanism) Default: "SIGNIFYD_RECOMMENDATION" Enum: "POLICY_ONLY_ACCEPT" "SIGNIFYD_RECOMMENDATION" This field specifies how the decision returned in the
|
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
required | object (Purchase) Details about the products that were purchased and how the purchase was made. |
object (UserAccount) Data about the user's account with you, the merchant or service provider. | |
Array of objects (Membership) The membership object should be used to indicate the use of a buyer’s rewards, discounts, or admission programs during the purchase. Common uses include but are not limited to, memberships like Costco, Amazon Prime, Walmart+, and Airline Frequent Flyer programs. This object is conceptually distinct from userAccount whose attributes relate to the online account that was used by the buyer to complete the purchase; it's what the buyer "logs in to". You would never login to a "membership". | |
coverageRequests | Array of strings (CoverageRequests) Items Enum: "FRAUD" "INR" "SNAD" "ALL" "NONE"
|
merchantCategoryCode | string <ISO-18245> (MerchantCategoryCode) A Merchant Category Code (MCC) is a four-digit number listed in ISO 18245 for retail financial services. An MCC is used to classify every business that accepts card payments by the goods or services it provides. The MCC is provided by payment processors on authorizations. |
Array of objects (Seller) Use only if you operate a marketplace (e.g. eBay) and allow other merchants to list and sell products on the online store. A seller is an online account for the merchant or business that listed and sold the product(s) on the order. | |
tags | Array of strings A list of attributes or short descriptors associated with the order. |
customerOrderRecommendation | string (customerOrderRecommendation) Enum: "DECLINE_POLICY" "DECLINE_FRAUD" "APPROVE" "REVIEW" "DECLINE" "MR_APPROVE" "MR_DECLINE_FRAUD" "MR_TIMEOUT" If you have a legacy risk system independent of Signifyd, use this field to pass us the decision from that system. For declines, use either DECLINE_POLICY or DECLINE_FRAUD whenever possible. DECLINE should only be used if the underlying reason is unknown |
{- "checkoutId": "29bd5784-d3e0-4baa-bd2f-dbb82d90406d",
- "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "merchantPlatform": {
- "name": "Salesforce Commerce Cloud",
- "version": "1.2.4"
}, - "signifydClient": {
- "application": "Salesforce Commerce Cloud",
- "version": "18.1.0"
}, - "transactions": [
- {
- "paymentMethod": "CREDIT_CARD",
- "checkoutPaymentDetails": {
- "billingAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "accountHolderName": "Michael Scott",
- "accountHolderTaxId": "231.002.999-00",
- "accountHolderTaxIdCountry": "BR",
- "accountLast4": "2548",
- "abaRoutingNumber": "121122676",
- "bankRoutingNumber": null,
- "bankRoutingCountry": null,
- "cardToken": "oTktJmBaAhUyGHnNJt7WMA",
- "cardTokenProvider": "MERCHANT",
- "cardBin": "441104",
- "cardExpiryMonth": 3,
- "cardExpiryYear": 2022,
- "cardLast4": "0215",
- "cardBrand": "VISA",
- "cardFunding": "CREDIT",
- "cardInstallments": {
- "interval": "Month",
- "count": 4,
- "totalValue": 25,
- "installmentValue": 25
}
}, - "amount": 105.99,
- "currency": "USD",
- "gateway": "braintree",
- "sourceAccountDetails": {
- "accountNumber": "42202452-dq3",
- "active": true,
- "verified": true,
- "assetBalance": -10785.23,
- "creditLimit": 0,
- "createdAt": "2019-12-21T13:57:40-0700",
- "ownerAnnualIncome": 50000,
- "ownerDob": "1980-05-20",
- "ownerName": "Michael Scott",
- "contactEmail": "mgscottdmp1980@gmail.com",
- "contactPhone": "+442071838750",
- "contactAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "acquirerDetails": {
- "countryCode": "GB",
- "bin": "441104"
}
}
], - "additionalEvalRequests": [
- "SCA_EVALUATION"
], - "decisionMechanism": "SIGNIFYD_RECOMMENDATION",
- "orderId": "XGR-1840823423",
- "purchase": {
- "createdAt": "2020-12-23T13:57:40-0700",
- "orderChannel": "WEB",
- "totalPrice": 105.99,
- "currency": "GBP",
- "confirmationEmail": "bob@example.com",
- "products": [
- {
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "shipments": [
- {
- "destination": {
- "fullName": "Bob Smith",
- "organization": "Initrode plc",
- "email": null,
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "origin": {
- "locationId": "boise-store-24",
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "carrier": "UPS",
- "minDeliveryDate": "2020-12-25T13:57:40-0700",
- "maxDeliveryDate": "2020-12-28T13:57:40-0700",
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "fulfillmentMethod": "DELIVERY"
}
], - "confirmationPhone": "+442071838750",
- "totalShippingCost": 5.99,
- "discountCodes": [
- {
- "code": "LABOR_DAY_SALE",
- "amount": 9.5
}
], - "receivedBy": "string"
}, - "userAccount": {
- "username": "bobiverse",
- "createdDate": "2020-12-23T13:57:40-0700",
- "accountNumber": "q49sgfkj49",
- "aggregateOrderCount": 1,
- "aggregateOrderDollars": 105.99,
- "email": "bob@example.com",
- "phone": "+442071838750",
- "lastOrderId": "string",
- "lastUpdateDate": "2020-12-23T13:57:40-0700",
- "emailLastUpdateDate": "2020-12-23T13:57:40-0700",
- "phoneLastUpdateDate": "2020-12-23T13:57:40-0700",
- "passwordLastUpdateDate": "2020-12-23T13:57:40-0700",
- "savedPayments": [
- {
- "paymentMethod": "CREDIT_CARD",
- "paymentDetails": {
- "billingAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "accountHolderTaxID": "string",
- "accountHolderTaxIDCountry": "string",
- "accountLast4": "string",
- "abaRoutingNumber": "string",
- "bankRoutingNumber": "string",
- "bankRoutingCountry": "string",
- "cardBin": "string",
- "cardExpiryMonth": 0,
- "cardExpiryYear": 0,
- "cardLast4": "string",
- "cardBrand": "string",
- "cardFunding": "string"
}
}
], - "savedAddresses": [
- {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB",
- "addressType": "shipping"
}
]
}, - "memberships": [
- {
- "membershipId": "3cf0e3bd188949798d4d23d3085953e8",
- "phoneNumber": "+442071838750",
- "emailAddress": "bob@example.com",
- "membershipName": "FRESHPASS"
}
], - "coverageRequests": [
- "FRAUD"
], - "merchantCategoryCode": "1111",
- "sellers": [
- {
- "accountNumber": "23432-dse",
- "aggregateOrderCount": 4,
- "aggregateOrderDollars": 415.84,
- "contactAddress": {
- "streetAddress": "10 Downing St",
- "unit": "string",
- "postalCode": "SW1A 2AA",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "createdDate": "2020-12-23T13:57:40-0700",
- "domain": "mystore.com",
- "email": "myawesomedrones@gmail.com",
- "lastUpdateDate": "2020-12-23T13:57:40-0700",
- "name": "Awesome Drones Inc.",
- "onboardingEmail": "myawesomedrones@gmail.com",
- "onboardingIpAddress": "51.202.206.33",
- "parentEntity": "Kroger",
- "phone": "+442071838750",
- "sellerId": "3732692146",
- "tags": [
- "TOP_SELLER"
], - "username": "isellawesomedrones"
}
], - "tags": [
- "JULY_FACEBOOK_CAMPAIGN"
], - "customerOrderRecommendation": "DECLINE_POLICY"
}
{- "signifydId": 44,
- "checkoutId": "29bd5784-d3e0-4baa-bd2f-dbb82d90406d",
- "orderId": "XGR-1840823423",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}, - "score": 0
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}, - "scaEvaluation": {
- "outcome": "REQUEST_EXEMPTION",
- "exemptionDetails": {
- "exemption": "TRA",
- "placement": "AUTHORIZATION"
}
}
}
The Transaction
operation should be performed if you are using a PreAuthorization flow. In that flow, the initial Checkout
call to Signifyd occurs before you call your Payment Gateway for Payment Authorization.
After you call your Gateway, perform this Transaction
call and pass the complete transaction information. The transactions
array passed in this call will completely replace the pre-existing transactions
array on the Order. Therefore, you are required to send the data elements sent in the Checkout
call, as well as the information gathered after the authorization. This completes the journey of the transaction until another event occurs (such as a void or refund). You will need the associated checkoutId
in order to make this Transaction
call.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
checkoutId required | string Unique identifier for a checkout. This id is used to link these transactions with the original |
orderId required | string Unique identifier for an Order. This is required to link this transaction to the original Order created by the Checkout event. |
required | Array of PostAuthCardTransaction (object) or PostAuthBankTransaction (object) or PostAuthPayPalTransaction (object) or PostAuthGenericTransaction (object) (PostAuthTransactions) A list of payment authorizations that were attempted to pay for the order. |
{- "checkoutId": "29bd5784-d3e0-4baa-bd2f-dbb82d90406d",
- "orderId": "XGR-1840823423",
- "transactions": [
- {
- "transactionId": "4927wwllds49",
- "gatewayStatusCode": "SUCCESS",
- "paymentMethod": "CREDIT_CARD",
- "checkoutPaymentDetails": {
- "billingAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "accountHolderName": "Michael Scott",
- "accountHolderTaxId": "231.002.999-00",
- "accountHolderTaxIdCountry": "BR",
- "accountLast4": "2548",
- "abaRoutingNumber": "121122676",
- "bankRoutingNumber": null,
- "bankRoutingCountry": null,
- "cardToken": "oTktJmBaAhUyGHnNJt7WMA",
- "cardTokenProvider": "MERCHANT",
- "cardBin": "441104",
- "cardExpiryMonth": 3,
- "cardExpiryYear": 2022,
- "cardLast4": "0215",
- "cardBrand": "VISA",
- "cardFunding": "CREDIT",
- "cardInstallments": {
- "interval": "Month",
- "count": 4,
- "totalValue": 25,
- "installmentValue": 25
}
}, - "amount": 105.99,
- "currency": "USD",
- "gateway": "braintree",
- "sourceAccountDetails": {
- "accountNumber": "42202452-dq3",
- "active": true,
- "verified": true,
- "assetBalance": -10785.23,
- "creditLimit": 0,
- "createdAt": "2019-12-21T13:57:40-0700",
- "ownerAnnualIncome": 50000,
- "ownerDob": "1980-05-20",
- "ownerName": "Michael Scott",
- "contactEmail": "mgscottdmp1980@gmail.com",
- "contactPhone": "+442071838750",
- "contactAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "acquirerDetails": {
- "countryCode": "GB",
- "bin": "441104"
}, - "gatewayErrorCode": "CARD_DECLINED",
- "gatewayStatusMessage": "string",
- "createdAt": "2020-12-23T13:57:40-0700",
- "parentTransactionId": "string",
- "scaExemptionRequested": "TRA",
- "verifications": {
- "cvvResponseCode": "S",
- "avsResponseCode": "M"
}, - "threeDsResult": {
- "eci": "02",
- "cavv": "MAAAAAAAAAAAAAAAAAAAAAAAAAA=",
- "version": "2.2",
- "transStatus": "AUTHENTICATION_SUCCESS",
- "transStatusReason": "string",
- "acsOperatorId": "AcsOpId 4138359541",
- "dsTransId": "1cf815e5-cc85-436f-8e13-9f5e5aea731d",
- "threeDsServerTransId": "b85d3eb5-d2d2-45af-bc1b-6188021ae605",
- "cavvAlgorithm": "0",
- "exemptionIndicator": "TRA",
- "timestamp": "2020-12-23T13:57:40-0700"
}
}
]
}
{- "signifydId": 44,
- "checkoutId": "29bd5784-d3e0-4baa-bd2f-dbb82d90406d",
- "orderId": "XGR-1840823423",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}, - "score": 0
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Use the Sale API if you're executing a "PostAuth" Flow where you call into Signifyd after the payment has been authorized with your Payment Gateway. If you are executing a "PreAuth" Flow, then use the Checkout
APIs.
To create an Order in the Signifyd system in a PostAuth flow, you record a Sale Event. A Sale event represents the completion of a purchase flow by a buyer as well as a Payment Authorization. If an Order has already been made by a Checkout or Sale event, calling this API again with the same orderID will update all order information and return a new decision.
Policies for this event can be instrumented in Decision Center at the Sale checkpoint.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
required | object (Purchase) Details about the products that were purchased and how the purchase was made. |
object (UserAccount) Data about the user's account with you, the merchant or service provider. | |
Array of objects (Membership) The membership object should be used to indicate the use of a buyer’s rewards, discounts, or admission programs during the purchase. Common uses include but are not limited to, memberships like Costco, Amazon Prime, Walmart+, and Airline Frequent Flyer programs. This object is conceptually distinct from userAccount whose attributes relate to the online account that was used by the buyer to complete the purchase; it's what the buyer "logs in to". You would never login to a "membership". | |
coverageRequests | Array of strings (CoverageRequests) Items Enum: "FRAUD" "INR" "SNAD" "ALL" "NONE"
|
merchantCategoryCode | string <ISO-18245> (MerchantCategoryCode) A Merchant Category Code (MCC) is a four-digit number listed in ISO 18245 for retail financial services. An MCC is used to classify every business that accepts card payments by the goods or services it provides. The MCC is provided by payment processors on authorizations. |
decisionDelivery | string (DecisionDelivery) Default: "ASYNC_ONLY" Enum: "SYNC" "ASYNC_ONLY" Specify |
object (Device) Data about the device that was used by the user to complete the actions. | |
object (MerchantPlatform) Details about the merchant's commerce platform. | |
object (SignifydClient) For internal use only. Provides Signifyd details about the Signifyd plugin that a merchant is using. | |
Array of PostAuthCardTransaction (object) or PostAuthBankTransaction (object) or PostAuthPayPalTransaction (object) or PostAuthGenericTransaction (object) (PostAuthTransactions) A list of payment authorizations that were attempted to pay for the order. | |
decisionMechanism | string (DecisionMechanism) Default: "SIGNIFYD_RECOMMENDATION" Enum: "POLICY_ONLY_ACCEPT" "SIGNIFYD_RECOMMENDATION" This field specifies how the decision returned in the
|
Array of objects (Seller) Use only if you operate a marketplace (e.g. eBay) and allow other merchants to list and sell products on the online store. A seller is an online account for the merchant or business that listed and sold the product(s) on the order. | |
tags | Array of strings A list of attributes or short descriptors associated with the order. |
customerOrderRecommendation | string (customerOrderRecommendation) Enum: "DECLINE_POLICY" "DECLINE_FRAUD" "APPROVE" "REVIEW" "DECLINE" "MR_APPROVE" "MR_DECLINE_FRAUD" "MR_TIMEOUT" If you have a legacy risk system independent of Signifyd, use this field to pass us the decision from that system. For declines, use either DECLINE_POLICY or DECLINE_FRAUD whenever possible. DECLINE should only be used if the underlying reason is unknown |
{- "orderId": "XGR-1840823423",
- "purchase": {
- "createdAt": "2020-12-23T13:57:40-0700",
- "orderChannel": "WEB",
- "totalPrice": 105.99,
- "currency": "GBP",
- "confirmationEmail": "bob@example.com",
- "products": [
- {
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "shipments": [
- {
- "destination": {
- "fullName": "Bob Smith",
- "organization": "Initrode plc",
- "email": null,
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "origin": {
- "locationId": "boise-store-24",
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "carrier": "UPS",
- "minDeliveryDate": "2020-12-25T13:57:40-0700",
- "maxDeliveryDate": "2020-12-28T13:57:40-0700",
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "fulfillmentMethod": "DELIVERY"
}
], - "confirmationPhone": "+442071838750",
- "totalShippingCost": 5.99,
- "discountCodes": [
- {
- "code": "LABOR_DAY_SALE",
- "amount": 9.5
}
], - "receivedBy": "string"
}, - "userAccount": {
- "username": "bobiverse",
- "createdDate": "2020-12-23T13:57:40-0700",
- "accountNumber": "q49sgfkj49",
- "aggregateOrderCount": 1,
- "aggregateOrderDollars": 105.99,
- "email": "bob@example.com",
- "phone": "+442071838750",
- "lastOrderId": "string",
- "lastUpdateDate": "2020-12-23T13:57:40-0700",
- "emailLastUpdateDate": "2020-12-23T13:57:40-0700",
- "phoneLastUpdateDate": "2020-12-23T13:57:40-0700",
- "passwordLastUpdateDate": "2020-12-23T13:57:40-0700",
- "savedPayments": [
- {
- "paymentMethod": "CREDIT_CARD",
- "paymentDetails": {
- "billingAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "accountHolderTaxID": "string",
- "accountHolderTaxIDCountry": "string",
- "accountLast4": "string",
- "abaRoutingNumber": "string",
- "bankRoutingNumber": "string",
- "bankRoutingCountry": "string",
- "cardBin": "string",
- "cardExpiryMonth": 0,
- "cardExpiryYear": 0,
- "cardLast4": "string",
- "cardBrand": "string",
- "cardFunding": "string"
}
}
], - "savedAddresses": [
- {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB",
- "addressType": "shipping"
}
]
}, - "memberships": [
- {
- "membershipId": "3cf0e3bd188949798d4d23d3085953e8",
- "phoneNumber": "+442071838750",
- "emailAddress": "bob@example.com",
- "membershipName": "FRESHPASS"
}
], - "coverageRequests": [
- "FRAUD"
], - "merchantCategoryCode": "1111",
- "decisionDelivery": "ASYNC_ONLY",
- "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "merchantPlatform": {
- "name": "Salesforce Commerce Cloud",
- "version": "1.2.4"
}, - "signifydClient": {
- "application": "Salesforce Commerce Cloud",
- "version": "18.1.0"
}, - "transactions": [
- {
- "transactionId": "4927wwllds49",
- "gatewayStatusCode": "SUCCESS",
- "paymentMethod": "CREDIT_CARD",
- "checkoutPaymentDetails": {
- "billingAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "accountHolderName": "Michael Scott",
- "accountHolderTaxId": "231.002.999-00",
- "accountHolderTaxIdCountry": "BR",
- "accountLast4": "2548",
- "abaRoutingNumber": "121122676",
- "bankRoutingNumber": null,
- "bankRoutingCountry": null,
- "cardToken": "oTktJmBaAhUyGHnNJt7WMA",
- "cardTokenProvider": "MERCHANT",
- "cardBin": "441104",
- "cardExpiryMonth": 3,
- "cardExpiryYear": 2022,
- "cardLast4": "0215",
- "cardBrand": "VISA",
- "cardFunding": "CREDIT",
- "cardInstallments": {
- "interval": "Month",
- "count": 4,
- "totalValue": 25,
- "installmentValue": 25
}
}, - "amount": 105.99,
- "currency": "USD",
- "gateway": "braintree",
- "sourceAccountDetails": {
- "accountNumber": "42202452-dq3",
- "active": true,
- "verified": true,
- "assetBalance": -10785.23,
- "creditLimit": 0,
- "createdAt": "2019-12-21T13:57:40-0700",
- "ownerAnnualIncome": 50000,
- "ownerDob": "1980-05-20",
- "ownerName": "Michael Scott",
- "contactEmail": "mgscottdmp1980@gmail.com",
- "contactPhone": "+442071838750",
- "contactAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "acquirerDetails": {
- "countryCode": "GB",
- "bin": "441104"
}, - "gatewayErrorCode": "CARD_DECLINED",
- "gatewayStatusMessage": "string",
- "createdAt": "2020-12-23T13:57:40-0700",
- "parentTransactionId": "string",
- "scaExemptionRequested": "TRA",
- "verifications": {
- "cvvResponseCode": "S",
- "avsResponseCode": "M"
}, - "threeDsResult": {
- "eci": "02",
- "cavv": "MAAAAAAAAAAAAAAAAAAAAAAAAAA=",
- "version": "2.2",
- "transStatus": "AUTHENTICATION_SUCCESS",
- "transStatusReason": "string",
- "acsOperatorId": "AcsOpId 4138359541",
- "dsTransId": "1cf815e5-cc85-436f-8e13-9f5e5aea731d",
- "threeDsServerTransId": "b85d3eb5-d2d2-45af-bc1b-6188021ae605",
- "cavvAlgorithm": "0",
- "exemptionIndicator": "TRA",
- "timestamp": "2020-12-23T13:57:40-0700"
}
}
], - "decisionMechanism": "SIGNIFYD_RECOMMENDATION",
- "sellers": [
- {
- "accountNumber": "23432-dse",
- "aggregateOrderCount": 4,
- "aggregateOrderDollars": 415.84,
- "contactAddress": {
- "streetAddress": "10 Downing St",
- "unit": "string",
- "postalCode": "SW1A 2AA",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "createdDate": "2020-12-23T13:57:40-0700",
- "domain": "mystore.com",
- "email": "myawesomedrones@gmail.com",
- "lastUpdateDate": "2020-12-23T13:57:40-0700",
- "name": "Awesome Drones Inc.",
- "onboardingEmail": "myawesomedrones@gmail.com",
- "onboardingIpAddress": "51.202.206.33",
- "parentEntity": "Kroger",
- "phone": "+442071838750",
- "sellerId": "3732692146",
- "tags": [
- "TOP_SELLER"
], - "username": "isellawesomedrones"
}
], - "tags": [
- "JULY_FACEBOOK_CAMPAIGN"
], - "customerOrderRecommendation": "DECLINE_POLICY"
}
{- "signifydId": 44,
- "orderId": "XGR-1840823423",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}, - "score": 0
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
APIs under the PostSale namespace record events that occur after the initial Sale. These events are linked by an orderId
, modifying the Order entity that was created in the Sale
or Checkout
event.
This endpoint is designed to enable a merchant to record a change to the price of an order that the buyer did not initiate. For example, the order may need to be revised because the product that the buyer purchased is out-of-stock, and the merchant would like to substitute a new product.
This endpoint allows repricing without a revision to the original decision returned by Signifyd. For example, if the order has both FRAUD and INR coverage for $150, when you call this endpoint to reprice the order to $100, you will retain coverage for FRAUD and INR, but now for $100 instead. Your invoice will also be updated to reflect the new coverage amount.
This endpoint is not designed for buyers modifying their carts -- those events should be recorded as new Checkout events.
Orders can be updated a maximum of 100 times within 14 days of the order being placed. Any updates following the 100th update will result in an HTTP 400 response.
This is a special-access endpoint that must be enabled by your Implementation Manager. The 14-day window can also be extended on a case-by-case basis.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
required | object (Purchase) |
{- "orderId": "XGR-1840823423",
- "purchase": {
- "totalPrice": 105.99,
- "currency": "GBP",
- "products": [
- {
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "totalShippingCost": 5.99,
- "discountCodes": [
- {
- "code": "LABOR_DAY_SALE",
- "amount": 9.5
}
]
}
}
{- "signifydId": 44,
- "orderId": "XGR-1840823423",
- "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Call this endpoint anytime Delivery Address on an Order needs to be changed. The change will be linked to the original Order with the orderId
parameter in the body.
Orders can be updated a maximum of 100 times for a new decision. Any updates following the 100th update will result in an HTTP 400 response.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string Unique identifier for the order. This is required to link this Reroute to the original Order created by a Checkout or Sale Event. |
object (Device) Data about the device that was used by the user to complete the actions. | |
required | Array of objects (Shipment) Details about the delivery destinations and the products for each one. |
{- "orderId": "XGR-1840823423",
- "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "shipments": [
- {
- "destination": {
- "fullName": "Bob Smith",
- "organization": "Initrode plc",
- "email": null,
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "origin": {
- "locationId": "boise-store-24",
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "carrier": "UPS",
- "minDeliveryDate": "2020-12-25T13:57:40-0700",
- "maxDeliveryDate": "2020-12-28T13:57:40-0700",
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "fulfillmentMethod": "DELIVERY"
}
]
}
{- "signifydId": 44,
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}, - "score": 0
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Retrieve the latest fraud decision for an order in the Signifyd system.
orderId required | string the unique identifier for an order |
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
{- "signifydId": 44,
- "orderId": "XGR-1840823423",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}, - "score": 0
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Retrieve the list of decisions associated with an order in the Signifyd system.
orderId required | string the unique identifier for an order |
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
[- {
- "signifydId": 44,
- "orderId": "XGR-1840823423",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}, - "score": 0
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
]
Use this endpoint to record a list of fulfillments associated with an Order
. All fulfillments passed here will be appended to existing fulfillments. If a fulfillment already exists on the order with any of the provided shipmentId
s the entire request will be rejected.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string The id that uniquely identifies the order the shipment is for. This should be the same orderId provided when created by Checkout or Sale event. |
fulfillmentStatus | string (FulfillmentStatus) Enum: "PARTIAL" "COMPLETE" "REPLACEMENT" "CANCELED" Statuses to indicate fulfillment state.
|
required | Array of objects (Fulfillment) A list of fulfillments associated with an order. |
{- "orderId": "string",
- "fulfillmentStatus": "PARTIAL",
- "fulfillments": [
- {
- "shipmentId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "shippedAt": "2019-08-24T14:15:22Z",
- "products": [
- {
- "itemName": "Sparkly Sandals",
- "itemQuantity": 4,
- "itemId": "item-id-dcebe01a-a01b-4c4d-b5e7-a2b80b1fcdd7",
- "passengerId": "passenger-id-10b6b931-6ea2-4677-a08c-f6b29c5ed66e",
- "airlineTicketFulfillmentStatus": "PURCHASED"
}
], - "shipmentStatus": "WAITING_FOR_PICKUP",
- "trackingUrls": [
- "string"
], - "trackingNumbers": [
- "string"
], - "destination": {
- "fullName": "Bob Smith",
- "organization": "Initrode plc",
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "confirmationPhone": "+442071838750",
- "driver": {
- "rating": 0,
- "fullName": "Bob Smith",
- "id": "string",
- "vehicleType": "SEDAN",
- "vehicleColor": "string",
- "vehicleLicensePlateNumber": "string",
- "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "expectedDeliveryTime": "2019-08-24T14:15:22Z"
}
}, - "origin": {
- "locationId": "boise-store-24",
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "carrier": "UPS",
- "fulfillmentMethod": "DELIVERY"
}
]
}
{- "orderId": "string",
- "shipmentIds": [
- "e4056107-6720-431f-a9f4-fe0ff9b6c92a"
], - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
APIs under the Return namespace record events that represent attempts or executions of returns, exchanges, and/or refunds of an order. These events are linked by an orderId
, modifying the Order entity that was created in the Sale
or Checkout
event.
For returns that Signifyd evaluates, there will always be two calls--one for evaluation via the Attempt Return endpoint, and one via the the Execute Return endpoint to let us know what your company decided to do after that.
For returns we do not evaluate, there will be no update, as Signifyd is not in the loop, only a single call to the Record Return endpoint.
Use this endpoint to solicit an evaluation from Signifyd when the customer is requesting a refund, exchange, and/or a return. The response contains the checkpointAction, which will drive any merchant workflow you have configured Note: using this API does NOT cancel any Guarantee associated with the corresponding order investigation. To send Signifyd information about return/refund/exchanges that will not be evaluated, use the Record Return API.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string Unique identifier for the order. This is required to link this Attempt Return to the original Order created by a Checkout or Sale event. |
returnId required | string (ReturnId) Unique identifier for the Attempt Return. |
returnDate | string <date-time> (ReturnDate) The time the return occurred. If this field is empty the present time is used instead. |
object (Device) Data about the device that was used by the user to complete the actions. | |
Array of objects (ReturnProduct) A list of products that are going to be returned by the buyer. | |
object (ReplacementItems) | |
object (AttemptReturnRefund) Details about the reimbursement that will be issued to the buyer if the attempt return is approved. | |
object (ReturnInitiator) Unique identifier for who initiated the return. This will be used if an internal employee initiated the return. |
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "returnDate": "2021-09-30T15:30:00+01:00",
- "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "returnedItems": [
- {
- "reason": "BETTER_PRICE_AVAILABLE",
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "replacementItems": {
- "products": [
- {
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "shipments": [
- {
- "destination": {
- "fullName": "Bob Smith",
- "organization": "Initrode plc",
- "email": null,
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "origin": {
- "locationId": "boise-store-24",
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "carrier": "UPS",
- "minDeliveryDate": "2020-12-25T13:57:40-0700",
- "maxDeliveryDate": "2020-12-28T13:57:40-0700",
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "fulfillmentMethod": "DELIVERY"
}
]
}, - "refund": {
- "method": "STORE_CREDIT",
- "amount": 105.99,
- "currency": "string"
}, - "initiator": {
- "employeeEmail": "bob@example.com",
- "employeeId": "0001234"
}
}
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Use this endpoint to inform Signifyd of subsequent actions on a return/refund/exchange request that was previously submitted for evaluation via the Attempt Return API. Integration of this endpoint is required if your organization has subscribed to Returns Abuse Prevention coverage from Signifyd.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
returnId required | string (ReturnId) Unique identifier for the Attempt Return. |
returnStatus | string (ReturnStatus) Enum: "OPEN" "CANCELED" "REFUNDED" "REPLACED" The status of the Return. For every update you get to a Return after creation, you can call executeReturn to update the status of the return. If no returnStatus is provided, the default will be OPEN.
|
trackingNumbers | Array of strings The tracking number(s) for the returned item(s). |
refundTransactionId | string Transaction id for the refund issued for a refund claim. |
storeCreditId | string Id for the store credit issued for a refund claim. |
replacementOrderId | string Unique identifier for the replacement order issued either as a response to a refund claim or as an exchange for a return. |
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "returnStatus": "OPEN",
- "trackingNumbers": [
- "TBA005492092203"
], - "refundTransactionId": "f40b4f33-f3ac-42ac-a8d0-0a416a11f1b9",
- "storeCreditId": "cb6b59f4-e370-4456-8f19-36d0ee20779b",
- "replacementOrderId": "XGR-fad658a1d4"
}
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Call this endpoint to record a return, exchanges, cancel a guarantee (within 30 days of order placement) and/or refund that does not need a decision from Signifyd.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string Unique identifier for the order. This is required to link this Record Return to the original Order created by a Checkout or Sale event. |
returnId required | string (ReturnId) Unique identifier for the Attempt Return. |
returnDate | string <date-time> (ReturnDate) The time the return occurred. If this field is empty the present time is used instead. |
object (Device) Data about the device that was used by the user to complete the actions. | |
Array of objects (ReturnProduct) A list of products that are going to be returned by the buyer. | |
object (ReplacementItems) | |
object (AttemptReturnRefund) Details about the reimbursement that will be issued to the buyer if the attempt return is approved. | |
object (ReturnInitiator) Unique identifier for who initiated the return. This will be used if an internal employee initiated the return. | |
trackingNumbers | Array of strings The tracking number(s) for the returned item(s). |
refundTransactionId | string Transaction id for the refund issued for a refund claim. |
storeCreditId | string Id for the store credit issued for a refund claim. |
replacementOrderId | string Unique identifier for the replacement order issued either as a response to a refund claim or as an exchange for a return. |
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "returnDate": "2021-09-30T15:30:00+01:00",
- "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "returnedItems": [
- {
- "reason": "BETTER_PRICE_AVAILABLE",
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "replacementItems": {
- "products": [
- {
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "shipments": [
- {
- "destination": {
- "fullName": "Bob Smith",
- "organization": "Initrode plc",
- "email": null,
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "origin": {
- "locationId": "boise-store-24",
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
}, - "carrier": "UPS",
- "minDeliveryDate": "2020-12-25T13:57:40-0700",
- "maxDeliveryDate": "2020-12-28T13:57:40-0700",
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "fulfillmentMethod": "DELIVERY"
}
]
}, - "refund": {
- "method": "STORE_CREDIT",
- "amount": 105.99,
- "currency": "string"
}, - "initiator": {
- "employeeEmail": "bob@example.com",
- "employeeId": "0001234"
}, - "trackingNumbers": [
- "TBA005492092203"
], - "refundTransactionId": "f40b4f33-f3ac-42ac-a8d0-0a416a11f1b9",
- "storeCreditId": "cb6b59f4-e370-4456-8f19-36d0ee20779b",
- "replacementOrderId": "XGR-fad658a1d4"
}
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Use this endpoint to provide Signifyd with information regarding the quality of a return/refund/exchange (i.e. if it was later discovered to be an "abusive" return or a confirmed "good" return). If your company is currently performing any analysis on the quality of its returns, sending that information via this endpoint will become available to custom policies in created in Signifyd's Decision Center and appear in our Insights dashboards.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
returnId required | string (ReturnId) Unique identifier for the Attempt Return. |
Array of objects (ReturnProduct) A list of products that are going to be returned by the buyer. | |
returnOutcome required | string (ReturnOutcome) Enum: "GOOD" "ABUSIVE" "FRAUD" The outcome of the return once received by your return team.
|
returnOutcomeReason | string (ReturnOutcomeReason) The reason for the return outcome. Any reason will be accepted, but we strongly recommend mapping to one of the following keys if possible:
|
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "returnedItems": [
- {
- "reason": "BETTER_PRICE_AVAILABLE",
- "itemName": "Sparkly Sandals",
- "itemPrice": 25.99,
- "itemQuantity": 4,
- "itemIsDigital": false,
- "itemCategory": "Apparel",
- "itemSubCategory": "Footwear",
- "itemId": "sparkly-sandals-xl-yellow-2020",
- "itemWeight": 200.12,
- "shipmentId": "4JLHENj6OY56D9BTcQcR",
- "subscription": {
- "subscriptionId": "97c56c86-7984-44fa-9a3e-7d5f34d1bead",
- "nextDeliveryDate": "2022-01-22",
- "periodUnit": [
- "MONTH"
], - "totalPeriods": 12,
- "regularItemPrice": 49.99,
- "currentPeriod": 1
}, - "travel": {
- "transportMethod": "AIRLINE",
- "passengers": [
- {
- "passengerId": "48152066-f73b-11ec-b939-0242ac120002",
- "firstName": "Bob",
- "lastName": "Smith",
- "dateOfBirth": "1985-01-02",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "membershipLast4": "1234",
- "identityDocument": {
- "identityDocumentType": "PASSPORT",
- "issuanceGeo": "US",
- "last4": "1234",
- "issuanceDate": "2015-01-02",
- "expiryDate": "2025-01-01"
}, - "ticketStatus": "TICKETED",
- "ancillaryPurchases": [
- {
- "ancillaryPurchaseType": "MEAL",
- "itemName": "meal",
- "itemPrice": 25.99,
- "itemQuantity": 1,
- "currency": "USD"
}
]
}
], - "airlineTripDetail": {
- "slice": {
- "slicePrice": 105.99,
- "currency": "USD",
- "legs": [
- {
- "routeCode": "UA2604",
- "departureCity": "Chicago",
- "departureState": "Illinois",
- "departureCountryCode": "US",
- "departurePortCode": "ORD",
- "arrivalCity": "Detroit",
- "arrivalState": "Michigan",
- "arrivalCountryCode": "US",
- "arrivalPortCode": "DTW",
- "departureDatetime": "2020-12-25T08:01:00-0700",
- "arrivalDatetime": "2020-12-25T09:31:00-0700",
- "carrierName": "United Airline"
}
], - "bookingClass": "FIRST_CLASS"
}, - "isFlexible": false,
- "isInsured": false,
- "ifMilesUsed": false,
- "numOfMilesUsed": 10000,
- "milesBalance": 30000,
- "milesOriginCompanyName": "United Airline Mileage Plus",
- "ifPartnerMilesUsed": false
}
}
}
], - "returnOutcome": "ABUSIVE",
- "returnOutcomeReason": "Used Item"
}
{- "orderId": "XGR-1840823423",
- "returnId": "e4056107-6720-431f-a9f4-fe0ff9b6c92a",
- "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
APIs under the Chargebacks namespace record events that represent Chargeback creation and updates
To create a chargeback against an Order in the Signifyd system, you need to record a Chargeback Event.
Within this call, Signifyd will create a single claim, along with the chargeback. Any fulfillments sent will be created for the order.
If the chargeback already exists in the Signifyd system, a duplicate chargeback exception will be raised and the chargeback will not be created or updated.
Multiple different chargebacks can be created against an order, dependent on the Signifyd team settings.
The response will contain a summary of the current state of the main Chargeback Case artifacts, namely Chargeback, Claim and Representment Summaries. A representment summary will only be returned if an unassigned representment was created.
According to the Signifyd team settings, an unassigned representment will be created if the team is covered for chargeback recovery or the team has given consent to full access.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
chargebackId required | string (ChargebackId) Unique Chargeback id as given by payment processor or merchant. Maximum length of 256 characters. |
partnerChargebackId | string (PartnerChargebackId) Optional field containing a unique Id generated within a partner's system to represent a chargeback case. |
required | object (ChargebackCreateRequest) |
Array of objects (FulfillmentDetail) |
{- "orderId": "XGR-1840823423",
- "chargebackId": "MyChargeback-1234",
- "partnerChargebackId": "PB5CDVPNB6X",
- "chargeback": {
- "amount": {
- "amount": 12.34,
- "currencyCode": "USD"
}, - "reason": {
- "processorName": "WORLDPAY",
- "processorReasonCode": "81",
- "processorReasonDescription": "Fraud"
}, - "cardholderEmail": "example@email.com",
- "cardholderName": "Example-Name",
- "chargebackFees": {
- "amount": 12.34,
- "currencyCode": "USD"
}, - "issuerReportedDate": "2019-08-24T14:15:22Z",
- "dueDate": "2019-08-24T14:15:22Z",
- "paymentProcessor": "WORLDPAY",
- "paymentNetwork": "Visa",
- "chargebackStage": "RETRIEVAL",
- "assumedOwnership": {
- "assumedOwner": "SIGNIFYD"
}
}, - "fulfillments": [
- {
- "shipper": "UPS",
- "trackingNumber": "1111111"
}
]
}
{- "orderId": "XGR-1840823423",
- "signifydId": 999999,
- "chargebackCaseSummary": {
- "chargebackSummary": {
- "signifydChargebackId": 987,
- "chargebackId": "MyChargeback-1234",
- "stage": "ARBITRATION"
}, - "claimSummary": {
- "signifydClaimId": 12345,
- "disposition": "APPROVED",
- "dispositionReason": "INELIGIBLE_CHARGEBACK",
- "status": "CLOSED"
}, - "representmentSummary": {
- "signifydRepresentmentId": 987,
- "outcome": "LOST",
- "status": "CLOSED"
}
}
}
To set the outcome of a Chargeback's Representment in the Signifyd system, you need to record a Representment Outcome Event.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
chargebackId required | string (ChargebackId) Unique Chargeback id as given by payment processor or merchant. Maximum length of 256 characters. |
partnerChargebackId | string (PartnerChargebackId) Optional field containing a unique Id generated within a partner's system to represent a chargeback case. |
representmentOutcome required | string (UpdateRepresentmentOutcome) Enum: "LOST" "WON" The Representment Outcome indicates the final result of the representment case.
|
{- "orderId": "XGR-1840823423",
- "chargebackId": "MyChargeback-1234",
- "partnerChargebackId": "PB5CDVPNB6X",
- "representmentOutcome": "LOST"
}
{- "orderId": "XGR-1840823423",
- "signifydId": 999999,
- "chargebackCaseSummary": {
- "chargebackSummary": {
- "signifydChargebackId": 987,
- "chargebackId": "MyChargeback-1234",
- "stage": "ARBITRATION"
}, - "claimSummary": {
- "signifydClaimId": 12345,
- "disposition": "APPROVED",
- "dispositionReason": "INELIGIBLE_CHARGEBACK",
- "status": "CLOSED"
}, - "representmentSummary": {
- "signifydRepresentmentId": 987,
- "outcome": "LOST",
- "status": "CLOSED"
}
}
}
To change the stage of a Chargeback in the Signifyd system, you need to record a Chargeback Stage Event.
As well as changing the Chargeback stage, this Api allows you to optionally also update the Chargeback Amount, Reason and Representment Outcome.
This event must change the stage of a Chargeback. If the request contains the existing stage, then the request will be rejected.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
chargebackId required | string (ChargebackId) Unique Chargeback id as given by payment processor or merchant. Maximum length of 256 characters. |
partnerChargebackId | string (PartnerChargebackId) Optional field containing a unique Id generated within a partner's system to represent a chargeback case. |
chargebackStage required | string (ChargebackStage) Enum: "RETRIEVAL" "CHARGEBACK" "PREARBITRATION" "ARBITRATION" "RECALLED" The Chargeback Stage refers to the stage within the chargeback dispute lifecycle that the chargeback is in with respect to the payment processor/gateway.
|
object (Amount) The amount of the transaction and the currency it is within. | |
object (Reason) A Payment Processor's view of the reason for the chargeback. | |
changeRepresentmentOutcome | string (UpdateRepresentmentOutcome) Enum: "NONE" "LOST" "WON" The Representment Outcome indicates the final result of the representment case.
|
issuerReportedDate | string <date-time> The date on which the issuer reported updating the chargeback stage. Formatted as |
dueDate | string <date-time> The date by which a response to the new chargeback stage is required. Formatted as |
object (AssumedOwnership) Assumed ownership is an optional field passed to Signifyd to provide details about the assumed owning party of the representation rights upon creation of the chargeback case. This field will be ignored unless the caller is a Signifyd partner. |
{- "orderId": "XGR-1840823423",
- "chargebackId": "MyChargeback-1234",
- "partnerChargebackId": "PB5CDVPNB6X",
- "chargebackStage": "RETRIEVAL",
- "changeAmount": {
- "amount": 12.34,
- "currencyCode": "USD"
}, - "changeReason": {
- "processorName": "WORLDPAY",
- "processorReasonCode": "81",
- "processorReasonDescription": "Fraud"
}, - "changeRepresentmentOutcome": "NONE",
- "issuerReportedDate": "2019-08-24T14:15:22Z",
- "dueDate": "2019-08-24T14:15:22Z",
- "assumedOwnership": {
- "assumedOwner": "SIGNIFYD"
}
}
{- "orderId": "XGR-1840823423",
- "signifydId": 999999,
- "chargebackCaseSummary": {
- "chargebackSummary": {
- "signifydChargebackId": 987,
- "chargebackId": "MyChargeback-1234",
- "stage": "ARBITRATION"
}, - "claimSummary": {
- "signifydClaimId": 12345,
- "disposition": "APPROVED",
- "dispositionReason": "INELIGIBLE_CHARGEBACK",
- "status": "CLOSED"
}, - "representmentSummary": {
- "signifydRepresentmentId": 987,
- "outcome": "LOST",
- "status": "CLOSED"
}
}
}
To create an early alert against an order in the Signifyd system, you need to record an Early Alert Event.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
alertProviderReferenceId required | string (AlertProviderReferenceId) Unique reference associated with the early alert by the provider and maintained throughout the life cycle of the transaction. |
required | object (Amount) The amount of the transaction and the currency it is within. |
cardBin required | integer (CardBin) Card Bank Identification Number |
merchantName required | string (MerchantName) Name of the merchant associated with this early alert |
orderId required | string (OrderId) Unique identifier for an Order. This id must match the orderId used for the original Checkout or Sale request. |
alertName | string (AlertName) Provider’s name for the early alert. |
alertProviderReportedDate | string <date-time> The date on which the early alert was reported by the provider. Formatted as |
alertInitiatedBy | string (AlertInitiatedBy) Enum: "ISSUER" "CARDHOLDER" "NOT_AVAILABLE" Whether the transaction was initially identified by the card holder or the card issuer.
|
cardholderEmail | string (CardholderEmail) Email address for the cardholder |
cardholderName | string (CardholderName) Name associated with the cardholder |
merchantId | string (MerchantId) The merchant account identifier used in the transaction the alert is for. |
mcc | string <ISO-18245> (MerchantCategoryCode) A Merchant Category Code (MCC) is a four-digit number listed in ISO 18245 for retail financial services. An MCC is used to classify every business that accepts card payments by the goods or services it provides. The MCC is provided by payment processors on authorizations. |
cardScheme | string (CardScheme) Card scheme linked to payment card |
issuer | string (Issuer) The name of the card issuer |
transactionId | string (TransactionId) Unique value assigned by the card scheme (VISA/Mastercard, etc.) to each transaction on the Authorization and maintained throughout the life cycle of the transaction. |
arn | string (Arn) Acquirer Reference Number assigned to the transaction |
alertReasonCode | integer (AlertReasonCode) The card scheme-specific chargeback reason code which indicates the cardholder’s reason for disputing the transaction. |
alertReasonDescription | string (AlertReasonDescription) Description of the alert reason |
alertOutcome | string (AlertOutcome) The outcome for the alert. |
{- "alertProviderReferenceId": "BPXQX21TJ18WORG8",
- "amount": {
- "amount": 12.34,
- "currencyCode": "USD"
}, - "cardBin": 400344,
- "merchantName": "Samsung",
- "orderId": "XGR-1840823423",
- "alertName": "NOTIFICATION_OF_FRAUD",
- "alertProviderReportedDate": "2019-08-24T14:15:22Z",
- "alertInitiatedBy": "CARDHOLDER",
- "cardholderEmail": "name@example.com",
- "cardholderName": "John Smith",
- "merchantId": "SomeCompany_ECom",
- "mcc": "1111",
- "cardScheme": "visa",
- "issuer": "Capital One",
- "transactionId": "A9Y2X01TI18POAG7",
- "arn": "arn1665059145275",
- "alertReasonCode": 5,
- "alertReasonDescription": "Fraudulent Use of Account Number",
- "alertOutcome": "RESOLVED"
}
{- "orderId": "XGR-1840823423",
- "signifydId": 999999
}
Webhooks are a way for a merchant to receive Signifyd decisions asynchronously.
Signifyd will push the notification to the merchant, allowing them to continue processing based on the decision contained within.
SIGNIFYD-SEC-HMAC-SHA256
header is included in each webhook POST message.
The contents of this header is the Base64 encoded output of the HMAC SHA256 encoding of the JSON body of the message, using the team's API key as the encryption key.
Here's an example of how to compute the Json body as an HMAC encoded value in Java.
Mac sha256HMAC = javax.crypto.Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec(teamAPIKEY.getBytes(), "HmacSHA256");
sha256HMAC.init(secretKey);
String encodedHMAC256 = Base64.encodeBase64String(sha256HMAC.doFinal(jsonBody.getBytes("UTF-8")));
SIGNIFYD-TOPIC required | string (topic) Value: "ORDER_CHECKPOINT_ACTION_UPDATE" |
SIGNIFYD-CHECKPOINT required | string (Checkpoint) Enum: "MERCHANT_REVIEW" "SIGNIFYD_REVIEW" "CHECKOUT" "TRANSACTION" "SALE" "REROUTE"
|
SIGNIFYD-SEC-HMAC-SHA256 required | string To allow a client to verify a webhook message has in fact come from SIGNIFYD, an |
signifydId required | integer <int64> (signifydId) Signifyd's unique ID for this event. |
orderId required | string Unique identifier for the order. You should retain the value so you can retrieve summary information about the order later. |
object or null (DecisionResponse) Signifyd's Decision for this event. Populated only when | |
object or null (Coverage) Details about the coverage Signifyd will cover on each type of claim. |
{- "signifydId": 44,
- "orderId": "XGR-1840823423",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}, - "score": 0
}, - "coverage": {
- "fraudChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "inrChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}, - "allChargebacks": {
- "amount": 105.99,
- "currency": "GBP"
}
}
}
Use the Webhooks APIs to create and manage the subscriptions to the webhooks defined above.
Create a new webhook. This will add to the list of any existing webhooks.
The webhook endpoint must use SSL with either TLSv1.2 or TLSv1.3 protocols.
Cipher Suites currently supported are:
teamId required | integer <int64> Example: 567890 Signifyd's unique identifier for the team |
url required | string <uri> (url) The URL to which the webhook data should be sent when the event is triggered. |
{- "id": "00071eb8-468c-4176-b7cc-dc2876ee6b4f",
- "topic": "ORDER_CHECKPOINT_ACTION_UPDATE",
- "createdAt": "2020-08-27T23:22:00.249997Z",
- "updatedAt": "2020-08-27T23:22:00.249997Z"
}
Get the list of webhooks for a team. If the user belongs to the team with the given teamId
or has sufficient privileges to access the team webhooks, a list of webhooks for that team will be returned.
teamId required | integer <int64> Example: 567890 Signifyd's unique identifier for the team |
[- {
- "id": "00071eb8-468c-4176-b7cc-dc2876ee6b4f",
- "topic": "ORDER_CHECKPOINT_ACTION_UPDATE",
- "createdAt": "2020-08-27T23:22:00.249997Z",
- "updatedAt": "2020-08-27T23:22:00.249997Z"
}
]
Replaces an existing webhook identified by the hookId
.
teamId required | integer <int64> Example: 567890 Signifyd's unique identifier for the team |
hookId required | string Example: 00071eb8-468c-4176-b7cc-dc2876ee6b4f Signifyd's unique identifier for the webhook. |
url required | string <uri> (url) The URL to which the webhook data should be sent when the event is triggered. |
{- "id": "00071eb8-468c-4176-b7cc-dc2876ee6b4f",
- "topic": "ORDER_CHECKPOINT_ACTION_UPDATE",
- "createdAt": "2020-08-27T23:22:00.249997Z",
- "updatedAt": "2020-08-27T23:22:00.249997Z"
}
Deletes an existing webhook identified by the hookId
.
teamId required | integer <int64> Example: 567890 Signifyd's unique identifier for the team |
hookId required | string Example: 00071eb8-468c-4176-b7cc-dc2876ee6b4f Signifyd's unique identifier for the webhook. |
{- "messages": [
- "General error message."
], - "traceId": "891f2e31d267dde",
- "errors": {
- "purchase.discountCodes[0].code": [
- "missing"
]
}
}
APIs under the Signups namespace record events that represent attempts to create a new user account in your system.
Record a Signup attempt in the Signifyd system. This event should be instrumented each time a user attempts to Signup to your system. The call to Signifyd should come after the sign up event and the account was already created on your system. All Signup attempts should be recorded. Signifyd will return a response indicating if the user should be allowed to proceed with the Signup.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
SIGNIFYD-TEST-DECISION-RESPONSE | string Enum: "ACCEPT" "CHALLENGE" "REJECT" The decision response requested for testing API integrations. This should normally be omitted, as it's only relevant when testing API integration with Signifyd. |
required | object (PostSignupAccount) An object containing information about the user signing up for the account |
required | object (Device) Data about the device that was used by the user to complete the actions. |
identityProvider | string (IdentityProvider) The name of the entity that is administering this authentication factor and identity. Any name will be accepted, but we strongly recommend mapping to one of the following keys if possible:
|
{- "userAccount": {
- "accountNumber": "q49sgfkj49",
- "username": "bobiverse",
- "fullName": "Bob Norman",
- "email": "bob@example.com",
- "phone": "+442071838750",
- "shippingAddresses": [
- {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}
], - "createdDate": "2020-12-23T13:57:40-0700"
}, - "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "identityProvider": "Facebook"
}
{- "signifydId": 44,
- "accountNumber": "q49sgfkj49",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}
}
}
When you receive an account creation attempt that you deem risky, you will likely want to verify whether the user is who they say they are. If you issue additional account verification or have a manual follow up via your customer service team, you can send us the outcome.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
accountNumber required | string Your unique, immutable identifier for the account being verified. |
required | Array of EmailVerificationAuthFactor (object) or PhoneNumberVerificationAuthFactor (object) (AccountVerificationAuthFactor) |
required | object (Device) Data about the device that was used by the user to complete the actions. |
verificationStart | string <date-time> Formatted as |
verificationFinish | string <date-time> Formatted as |
{- "accountNumber": "q49sgfkj49",
- "factors": [
- {
- "email": "example@email.com",
- "method": "EMAIL_OTP",
- "evaluation": "PASSED"
}
], - "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "verificationStart": "2020-12-23T13:57:40-0700",
- "verificationFinish": "2020-12-23T13:59:55-0700"
}
{- "signifydId": 44,
- "accountNumber": "q49sgfkj49"
}
APIs under the AccountModifications namespace record events that represent attempts to modify a user account in your system.
Call this end point when a customer makes a change to the saved data in their account.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
modificationId required | string A unique identifier for the modification event. |
required | object (UserAccount) Data about the user's account with you, the merchant or service provider. |
required | object (Device) Data about the device that was used by the user to complete the actions. |
identityProvider | string (IdentityProvider) The name of the entity that is administering this authentication factor and identity. Any name will be accepted, but we strongly recommend mapping to one of the following keys if possible:
|
originatingUserAgent | string The originating userAgent for this event. |
{- "modificationId": "e31b770c",
- "userAccount": {
- "username": "bobiverse",
- "createdDate": "2020-12-23T13:57:40-0700",
- "accountNumber": "q49sgfkj49",
- "aggregateOrderCount": 1,
- "aggregateOrderDollars": 105.99,
- "email": "bob@example.com",
- "phone": "+442071838750",
- "lastOrderId": "string",
- "lastUpdateDate": "2020-12-23T13:57:40-0700",
- "emailLastUpdateDate": "2020-12-23T13:57:40-0700",
- "phoneLastUpdateDate": "2020-12-23T13:57:40-0700",
- "passwordLastUpdateDate": "2020-12-23T13:57:40-0700",
- "savedPayments": [
- {
- "paymentMethod": "CREDIT_CARD",
- "paymentDetails": {
- "billingAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "accountHolderTaxID": "string",
- "accountHolderTaxIDCountry": "string",
- "accountLast4": "string",
- "abaRoutingNumber": "string",
- "bankRoutingNumber": "string",
- "bankRoutingCountry": "string",
- "cardBin": "string",
- "cardExpiryMonth": 0,
- "cardExpiryYear": 0,
- "cardLast4": "string",
- "cardBrand": "string",
- "cardFunding": "string"
}
}
], - "savedAddresses": [
- {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB",
- "addressType": "shipping"
}
]
}, - "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "identityProvider": "Facebook",
- "originatingUserAgent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
}
{- "signifydId": 44,
- "modificationId": "q49sgfkj49",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}
}
}
APIs under the Logins namespace record events that represent Authentication Attempts into your system.
Record a login attempt in the Signifyd system. This event should be instrumented each time a user attempts to log in to your system. The call to Signifyd should come after the attempt is made. Both successful and unsuccessful login attempts should be recorded. Signifyd will return a response indicating if the user should be allowed to proceed with the login.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
SIGNIFYD-TEST-DECISION-RESPONSE | string Enum: "ACCEPT" "CHALLENGE" "REJECT" The decision response requested for testing API integrations. This should normally be omitted, as it's only relevant when testing API integration with Signifyd. |
loginId required | string A unique ID for this login that you can use to retrieve this login event later. |
required | Array of objects (AuthFactor) The factors that were used to authenticate this user. |
required | object (Device) Data about the device that was used by the user to complete the actions. |
required | object (UserAccount) Data about the user's account with you, the merchant or service provider. |
orderId | string The orderId associated with this login attempt, if one exists |
result required | string (LoginResult) Enum: "SUCCESS" "INVALID_FACTOR" "ACCOUNT_UNKNOWN" "ACCOUNT_SUSPENDED" "ACCOUNT_DISABLED" "MAX_ATTEMPTS_EXCEEDED" "OTP_EXPIRED" The result of the authentication attempt before Signifyd's evaluation.
|
originatingUserAgent | string The user agent for this login attempt, if one exists. |
{- "loginId": "e33febb4-4bb7-4264-8001-504a8d7fc2d7",
- "factors": [
- {
- "provider": "Facebook",
- "method": "PASSWORD",
- "evaluation": "PASSED"
}
], - "device": {
- "clientIpAddress": "75.100.88.78",
- "sessionId": "82ce5fca-c2b2-429b-b487-6c3053469f85",
- "fingerprint": {
- "provider": "threatmetrix",
- "payload": "aSBnZXQgYnkgd2l0aCBhIGxpdHRsZSBoZWxwIGZyb20gbXkgZnJpZW5kcw==",
- "payloadEncoding": "UTF8",
- "payloadVersion": "string"
}
}, - "userAccount": {
- "username": "bobiverse",
- "createdDate": "2020-12-23T13:57:40-0700",
- "accountNumber": "q49sgfkj49",
- "aggregateOrderCount": 1,
- "aggregateOrderDollars": 105.99,
- "email": "bob@example.com",
- "phone": "+442071838750",
- "lastOrderId": "string",
- "lastUpdateDate": "2020-12-23T13:57:40-0700",
- "emailLastUpdateDate": "2020-12-23T13:57:40-0700",
- "phoneLastUpdateDate": "2020-12-23T13:57:40-0700",
- "passwordLastUpdateDate": "2020-12-23T13:57:40-0700",
- "savedPayments": [
- {
- "paymentMethod": "CREDIT_CARD",
- "paymentDetails": {
- "billingAddress": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "accountHolderTaxID": "string",
- "accountHolderTaxIDCountry": "string",
- "accountLast4": "string",
- "abaRoutingNumber": "string",
- "bankRoutingNumber": "string",
- "bankRoutingCountry": "string",
- "cardBin": "string",
- "cardExpiryMonth": 0,
- "cardExpiryYear": 0,
- "cardLast4": "string",
- "cardBrand": "string",
- "cardFunding": "string"
}
}
], - "savedAddresses": [
- {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB",
- "addressType": "shipping"
}
]
}, - "orderId": "XGR-1840823423",
- "result": "SUCCESS",
- "originatingUserAgent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
}
{- "signifydId": 44,
- "loginId": "e33febb4-4bb7-4264-8001-504a8d7fc2d7",
- "decision": {
- "createdAt": "2020-11-20T20:16:15.382889Z",
- "checkpointAction": "ACCEPT",
- "checkpointActionReason": "Power buyer on approve list",
- "checkpointActionPolicy": "APPROVE_POWER_BUYERS",
- "policies": {
- "default": {
- "name": "SIGNIFYD_DECISION",
- "status": "EVALUATED_TRUE",
- "action": "REJECT",
- "reason": "Suspicious user profile"
}, - "overriding": [
- {
- "name": "APPROVE_COOL_BUYERS",
- "status": "EVALUATED_TRUE",
- "action": "ACCEPT",
- "reason": "Buyer was cool"
}
]
}
}
}
When you receive a login attempt that may or may not be the account owner, you will want to provide a step-up challenge to verify if the user is the owner of the account. Once you have completed this challenge, the outcome of the challenge should be recorded.
SIGNIFYD-TEAM-ID | integer <int64> Example: 789123 The team id requested for authentication. This should normally be omitted, as it's only relevant when auth credentials allow requests for multiple teams. |
loginId required | string The unique ID for the login attempt you are attempting to verify. |
required | Array of objects (AuthFactor) The factors that were used to authenticate this user. |
result required | string (LoginResult) Enum: "SUCCESS" "INVALID_FACTOR" "ACCOUNT_UNKNOWN" "ACCOUNT_SUSPENDED" "ACCOUNT_DISABLED" "MAX_ATTEMPTS_EXCEEDED" "OTP_EXPIRED" The result of the authentication attempt before Signifyd's evaluation.
|
{- "loginId": "e33febb4-4bb7-4264-8001-504a8d7fc2d7",
- "factors": [
- {
- "provider": "Facebook",
- "method": "PASSWORD",
- "evaluation": "PASSED"
}
], - "result": "SUCCESS"
}
{- "signifydId": 44,
- "loginId": "e33febb4-4bb7-4264-8001-504a8d7fc2d7"
}
A Partner
is an entity that is allowed to create Organizations
, Teams
, and Users
in the Signifyd system. If a Partner
creates one of these entities, the Partner
has full control over it. Users
can be added as members with roles to an Organization
, Team
, or the Partner
itself. Team
members can access information regarding that Team
and have their own level of privilege for a given Team
. Organizations
are a way of grouping Teams
. Organization
members can access information for all Teams
that belong to that Organization
and have a configurable default level of privilege that can be overridden at the level of a specific Team
. Partner
members can access information for all Teams
belonging to all Organizations
belonging to the Partner
and have a configurable default level of privilege that can be overridden at a lower level.
Gets a paginated list of details for all members at the Partner
level.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
limit | integer [ 1 .. 100 ] Default: 50 Specifies the max number of members to return in the response. This should be a positive integer. |
offset | integer >= 0 Default: 0 Example: offset=50 Specifies the number of members to skip at the start of the response. This should be a positive integer. Combined with limit, this allows for paging through the members found in the search. Don’t include this parameter on the first call. Use the nextOffset value returned in a previous response to request the next page of members. |
{- "results": [
- {
- "userId": 123456,
- "role": "REVIEWER"
}
], - "hasMore": true,
- "nextOffset": 50
}
Adds a user as a Partner
level member. Such members will have access to all Teams
belonging to all Organizations
belonging to the Partner
. Members at Partner
level can only be removed at Partner
level. The access granted as a Partner Member will supersede any pre-existing access the user had. This includes team and organization access.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
Member details
userId required | integer <int64> Signifyd's unique identifier for the user. |
role required | string (Role) Enum: "REVIEWER" "MEMBER" "ADMIN" The role the member will have on all underlying Teams.
|
{- "userId": 123456,
- "role": "REVIEWER"
}
{- "userId": 123456,
- "role": "REVIEWER"
}
Updates a member at a Partner
level. Any fields not specified will not be changed.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
member details
role | string (Role) Enum: "REVIEWER" "MEMBER" "ADMIN" The role the member will have on all underlying Teams.
|
{- "role": "REVIEWER"
}
{- "userId": 123456,
- "role": "REVIEWER"
}
Gets the details for a Partner
member.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
{- "userId": 123456,
- "role": "REVIEWER"
}
Removes Partner
membership from a user. This will remove the ability for that user to access information regarding all Organizations
and Teams
that the user is not directly a member of.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
{- "messages": [
- "General error message."
], - "traceId": "891f2e31d267dde",
- "errors": {
- "purchase.discountCodes[0].code": [
- "missing"
]
}
}
Creates an Organization
. This is an entity used to group related Teams
together for billing purposes. For example, if you have merchants that are mapped to Teams
, but are billed at a higher entity level you would group them under a single Organization
. Teams
must belong to an Organization
and one must create an Organization
in order to create Teams
.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
Organization details
name required | string The name for the Organization. |
object (Billing) The billing details for the Organization |
{- "name": "Initrode",
- "billing": {
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "phoneNumber": "+442892123456",
- "email": "billing@mycompany.com",
- "billingContactGroupEmail": "John@mycompany.com",
- "primaryContactName": "Peter",
- "secondaryContactName": "David"
}
}
{- "orgId": 123456,
- "name": "Initrode",
- "billing": {
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "phoneNumber": "+442892123456",
- "email": "billing@mycompany.com",
- "billingContactGroupEmail": "John@mycompany.com",
- "primaryContactName": "Peter",
- "secondaryContactName": "David"
}
}
Gets the details for an Organization
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
orgId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Organization |
{- "name": "Initrode",
- "billing": {
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "phoneNumber": "+442892123456",
- "email": "billing@mycompany.com",
- "billingContactGroupEmail": "John@mycompany.com",
- "primaryContactName": "Peter",
- "secondaryContactName": "David"
}
}
Updates an Organization
. Any fields not supplied will not be changed.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
orgId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Organization |
Organization details
name | string The name for the Organization. |
object (Billing) The billing details for the Organization |
{- "name": "Initrode",
- "billing": {
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "phoneNumber": "+442892123456",
- "email": "billing@mycompany.com",
- "billingContactGroupEmail": "John@mycompany.com",
- "primaryContactName": "Peter",
- "secondaryContactName": "David"
}
}
{- "orgId": 123456,
- "name": "Initrode",
- "billing": {
- "address": {
- "streetAddress": "31 Sherwood Gardens",
- "unit": "string",
- "postalCode": "E14 9wn",
- "city": "London",
- "provinceCode": "string",
- "countryCode": "GB"
}, - "phoneNumber": "+442892123456",
- "email": "billing@mycompany.com",
- "billingContactGroupEmail": "John@mycompany.com",
- "primaryContactName": "Peter",
- "secondaryContactName": "David"
}
}
Gets a paginated list of details for all members at the Organization
level.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
orgId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Organization. |
limit | integer [ 1 .. 100 ] Default: 50 Specifies the max number of members to return in the response. This should be a positive integer. |
offset | integer >= 0 Default: 0 Example: offset=50 Specifies the number of members to skip at the start of the response. This should be a positive integer. Combined with limit, this allows for paging through the members found in the search. Don’t include this parameter on the first call. Use the nextOffset value returned in a previous response to request the next page of members. |
{- "results": [
- {
- "orgId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
], - "hasMore": true,
- "nextOffset": 50
}
Adds a user as an Organization
level member. Such members will have access to all Teams
belonging to that Organization
. Members at Organization
level can only be removed at Organization
level. The access granted as a Organization Member will supersede any pre-existing team access the user had.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
orgId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Organization. |
Member details
userId required | integer <int64> Signifyd's unique identifier for the user. |
role required | string (Role) Enum: "REVIEWER" "MEMBER" "ADMIN" The role the member will have on all underlying Teams.
|
{- "userId": 123456,
- "role": "REVIEWER"
}
{- "orgId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
Updates a member at an Organization
level. Any fields not specified will not be changed.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
orgId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Organization. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
member details
role | string (Role) Enum: "REVIEWER" "MEMBER" "ADMIN" The role the member will have on all underlying Teams.
|
{- "role": "REVIEWER"
}
{- "orgId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
Gets the details for an Organization
member.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
orgId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Organization. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
{- "orgId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
Removes Organization
membership from a user. This will remove the ability for that user to access information regarding all Teams
belonging to the Organization
.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
orgId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Organization. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
{- "messages": [
- "General error message."
], - "traceId": "891f2e31d267dde",
- "errors": {
- "purchase.discountCodes[0].code": [
- "missing"
]
}
}
Typically equates to a single merchant. Orders are submitted to Signifyd under that Team
and Users
belonging to that Team
can access those orders in the Signifyd Console
A fundamental unit of the Signifyd API is a Team
. A single Team
typically equates to a single merchant. Orders are submitted to Signifyd under that Team
and users belonging to that Team
can access those orders in the Signifyd Console. Normally the merchant itself creates and manages its own Teams
. The Signifyd Partners API is designed to allow Teams
to be created, updated and associated programatically by a trusted third-party.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
Team details
orgId required | integer <int64> Signifyd's unique identifier for the Organization to which this Team belongs. |
name required | string The name of the Team. |
website required | string The primary domain at which the Team receives eCommerce orders. |
object (ChargebackSettings) Chargeback Settings | |
merchantDescription | string Description of the merchant. |
{- "orgId": 123456,
- "name": "Initrode East Division",
- "website": "initrode-east.com",
- "chargebackSettings": {
- "fee": 9.99,
- "currency": "USD",
- "cbRecoveryContactEmail": "cbr.contact@mycompany.com",
- "claimsContactEmail": "claims.contact@mycompany.com",
- "contractStartDate": "2023-04-05T06:07:08Z",
- "guaranteeCoverageOptions": [
- "FRAUD"
]
}, - "merchantDescription": "A retail store owner."
}
{- "teamId": 789123,
- "orgId": 123456,
- "name": "Initrode East Division",
- "website": "initrode-east.com",
- "chargebackSettings": {
- "fee": 9.99,
- "currency": "USD",
- "cbRecoveryContactEmail": "cbr.contact@mycompany.com",
- "claimsContactEmail": "claims.contact@mycompany.com",
- "contractStartDate": "2023-04-05T06:07:08Z",
- "guaranteeCoverageOptions": [
- "FRAUD"
]
}, - "merchantDescription": "A retail store owner."
}
Gets the details for a Team
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 789123 Signifyd's unique identifier for the Team |
{- "teamId": 789123,
- "orgId": 123456,
- "name": "Initrode East Division",
- "website": "initrode-east.com",
- "chargebackSettings": {
- "fee": 9.99,
- "currency": "USD",
- "cbRecoveryContactEmail": "cbr.contact@mycompany.com",
- "claimsContactEmail": "claims.contact@mycompany.com",
- "contractStartDate": "2023-04-05T06:07:08Z",
- "guaranteeCoverageOptions": [
- "FRAUD"
]
}, - "merchantDescription": "A retail store owner.",
- "status": "LIVE"
}
Updates a Team
. Any fields not supplied will not be changed. If one wishes to update the status or products of a Team
one must use the endpoints specifically for that purpose rather than this one. The OrgId which links the Team
to its Organization
can not be changed.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 789123 Signifyd's unique identifier for the Team |
Team details
name | string The name of the Team. |
website | string The primary domain at which the Team receives eCommerce orders. |
object (ChargebackSettings) Chargeback Settings | |
merchantDescription | string Description of the merchant. |
{- "name": "Initrode East Division",
- "website": "initrode-east.com",
- "chargebackSettings": {
- "fee": 9.99,
- "currency": "USD",
- "cbRecoveryContactEmail": "cbr.contact@mycompany.com",
- "claimsContactEmail": "claims.contact@mycompany.com",
- "contractStartDate": "2023-04-05T06:07:08Z",
- "guaranteeCoverageOptions": [
- "FRAUD"
]
}, - "merchantDescription": "A retail store owner."
}
{- "teamId": 789123,
- "orgId": 123456,
- "name": "Initrode East Division",
- "website": "initrode-east.com",
- "chargebackSettings": {
- "fee": 9.99,
- "currency": "USD",
- "cbRecoveryContactEmail": "cbr.contact@mycompany.com",
- "claimsContactEmail": "claims.contact@mycompany.com",
- "contractStartDate": "2023-04-05T06:07:08Z",
- "guaranteeCoverageOptions": [
- "FRAUD"
]
}, - "merchantDescription": "A retail store owner."
}
Change the team status from BURN_IN
to LIVE
. For teams created using the Partners API Teams, Signifyd will have to approve internally before this endpoint can work.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 789123 Signifyd's unique identifier for the Team |
{- "teamId": 789123,
- "status": "LIVE"
}
Adds a product to the Team
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 789123 Signifyd's unique identifier for the Team |
Adds a product to a Team.
product required | string Enum: "GFP" "CBR" "RECS" "SCOR" The Product offered to a Team.
|
{- "product": "GFP"
}
{- "teamId": 789123,
- "product": "GFP"
}
Gets a paginated list of details for all members at the Team
level.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Team. |
limit | integer [ 1 .. 100 ] Default: 50 Specifies the max number of members to return in the response. This should be a positive integer. |
offset | integer >= 0 Default: 0 Example: offset=50 Specifies the number of members to skip at the start of the response. This should be a positive integer. Combined with limit, this allows for paging through the members found in the search. Don’t include this parameter on the first call. Use the nextOffset value returned in a previous response to request the next page of members. |
{- "results": [
- {
- "teamId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
], - "hasMore": true,
- "nextOffset": 50
}
Adds a user as a Team
level member.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Team. |
Member details
userId required | integer <int64> Signifyd's unique identifier for the user. |
role required | string (Role) Enum: "REVIEWER" "MEMBER" "ADMIN" The role the member will have on all underlying Teams.
|
{- "userId": 123456,
- "role": "REVIEWER"
}
{- "teamId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
Updates a member at a Team
level. Any fields not specified will not be changed.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Team. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
member details
role | string (Role) Enum: "REVIEWER" "MEMBER" "ADMIN" The role the member will have on all underlying Teams.
|
{- "role": "REVIEWER"
}
{- "teamId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
Gets the details for a Team
member.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Team. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
{- "teamId": 123456,
- "userId": 123456,
- "role": "REVIEWER"
}
Removes Team
membership from a user.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
teamId required | integer <int64> Example: 123456 Signifyd's unique identifier for the Team. |
userId required | integer <int64> Example: 123456 Signifyd's unique identifier for the user. |
{- "messages": [
- "General error message."
], - "traceId": "891f2e31d267dde",
- "errors": {
- "purchase.discountCodes[0].code": [
- "missing"
]
}
}
Creates a User
with a given email address or finds an already created User
by the Partner
. Although the Partner
owns this User
and can make any changes they want to the User
, the User
will initially not be a member of the Partner
entities and have no visibility of Teams
. The User
can be added as a member at a Team
, Organization
or Partner
level after creation.
partnerId required | integer <int64> Example: 123 Signifyd's unique identifier for the partner. This can also accept the placeholder "0" which will automatically populate with your partnerId using your partner credentials via an API. |
email required | string <email> Email of the user. This will be used as a unique identifier for the user and is essentially the user's username. It can be used to access the Signifyd Console. When a user is first created they will be sent an email to confirm their email address and set up a password. |
{- "email": "user@mycompany.com"
}
{- "userId": 123456,
- "email": "user@mycompany.com"
}