{ "openapi" : "3.0.3", "info" : { "title" : "api-fraud", "version" : "0.0.2", "description" : "API documentation for the fraud service" }, "servers" : [ { "url" : "http://fraud-frozone" } ], "paths" : { "/decision" : { "post" : { "description" : "Consumes the decision about a transaction (usually meant for manual review) and triggers OMS to process/cancel the order", "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsDecision" } } }, "required" : true }, "responses" : { "200" : { "description" : "Successful response" }, "400" : { "description" : "Bad request", "content" : { "application/json" : { "schema" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsError" } } } } } } } }, "/transaction" : { "post" : { "description" : "Provides decision about a transaction by supplying order or other information", "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsTransaction" } } }, "required" : true }, "responses" : { "200" : { "description" : "Successful response", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsDecision" } } } }, "400" : { "description" : "Bad request", "content" : { "application/json" : { "schema" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsError" } } } } } } } } }, "components" : { "schemas" : { "ComHbcApiFraudV0ModelsError" : { "description" : "Error response model", "type" : "object", "required" : [ "message", "error" ], "properties" : { "message" : { "description" : "Error description message", "example" : "Oops, something went wrong!", "type" : "string" }, "error" : { "description" : "Error code", "example" : "invalid_email", "type" : "string" } } }, "ComHbcApiFraudV0ModelsItem" : { "description" : "Single item", "type" : "object", "required" : [ "svsNumber", "skuNumber", "currentStatus", "department", "description", "price", "extendedPrice", "quantity", "groupNumber", "shippingAddress", "shippingMethod", "shippingCountry" ], "properties" : { "svsNumber" : { "description" : "Product style number (parent number)", "type" : "integer", "format" : "int32" }, "skuNumber" : { "description" : "HBC internally generated number for items (alias SKN)", "type" : "integer", "format" : "int32" }, "upcNumber" : { "description" : "The number on the barcode that could be used across different retailers", "type" : "integer", "format" : "int32" }, "classNumber" : { "description" : "Signifies business category of an item (pants, tops, shirts, etc.)", "type" : "integer", "format" : "int32" }, "color" : { "type" : "string" }, "size" : { "type" : "string" }, "currentStatus" : { "type" : "string" }, "department" : { "type" : "integer", "format" : "int32" }, "signOnDelivery" : { "type" : "string" }, "giftWrapped" : { "type" : "boolean" }, "costAmount" : { "type" : "number" }, "marginAmount" : { "type" : "number" }, "description" : { "type" : "string" }, "price" : { "description" : "Price of single item", "type" : "number" }, "extendedPrice" : { "description" : "Total price of all items ordered", "type" : "number" }, "quantity" : { "type" : "integer", "format" : "int32" }, "groupNumber" : { "type" : "integer", "format" : "int32" }, "shippingAddress" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsAddress" }, "shippingMethod" : { "type" : "string" }, "shippingCountry" : { "type" : "string" } } }, "ComHbcApiFraudV0ModelsCreditCard" : { "description" : "A customer's complete credit card information", "type" : "object", "required" : [ "nameOnCard", "billingAddress", "cardType", "cardNumber", "authorizedAmount", "fullAmount", "expiryDate", "authCode", "responseCode", "transactionNumber", "avsResponse" ], "properties" : { "nameOnCard" : { "type" : "string" }, "billingAddress" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsAddress" }, "cardType" : { "type" : "string" }, "cardNumber" : { "type" : "string" }, "authorizedAmount" : { "type" : "number" }, "fullAmount" : { "type" : "number" }, "expiryDate" : { "description" : "MM-YY that the credit card expires", "type" : "string" }, "authCode" : { "description" : "CVV code on the back of the card", "type" : "string" }, "responseCode" : { "type" : "integer", "format" : "int32" }, "merchantId" : { "type" : "integer", "format" : "int32" }, "registerNumber" : { "type" : "string" }, "transactionNumber" : { "type" : "string" }, "avsResponse" : { "description" : "Address Verification System response, Codes are available here: https://www.chasepaymentech.com/address_verification_service.html", "type" : "string" } } }, "ComHbcApiFraudV0ModelsCustomer" : { "description" : "Customer model", "type" : "object", "required" : [ "customerType", "accountId", "creationDate", "firstName", "lastName", "emailAddress" ], "properties" : { "customerType" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0EnumsCustomerType" }, "accountId" : { "type" : "string" }, "creationDate" : { "type" : "string", "format" : "date" }, "firstName" : { "type" : "string" }, "lastName" : { "type" : "string" }, "emailAddress" : { "type" : "string" } } }, "ComHbcApiFraudV0ModelsDBRecord" : { "description" : "Response model to OMS containing the transaction they've sent and the decision we've made", "type" : "object", "required" : [ "transactionId", "transaction", "decision" ], "properties" : { "transactionId" : { "type" : "string" }, "lastModifiedDate" : { "type" : "string", "format" : "date" }, "createdDate" : { "description" : "Date this record was first created within the database", "type" : "string", "format" : "date" }, "transaction" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsTransaction" }, "decision" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsDecision" } } }, "ComHbcApiFraudV0ModelsPromo" : { "description" : "Promotion model", "type" : "object", "required" : [ "promotionCode", "promotionAmount" ], "properties" : { "promotionCode" : { "type" : "string" }, "promotionAmount" : { "description" : "Dollar amount discounted by the promotion", "type" : "number" } } }, "ComHbcApiFraudV0ModelsAddress" : { "description" : "General address model", "type" : "object", "required" : [ "name", "streetLineOne", "city", "state", "zip", "country" ], "properties" : { "name" : { "type" : "string" }, "streetLineOne" : { "type" : "string" }, "streetLineTwo" : { "type" : "string" }, "city" : { "type" : "string" }, "state" : { "type" : "string" }, "zip" : { "type" : "string" }, "country" : { "type" : "string" } } }, "ComHbcApiFraudV0ModelsDecision" : { "description" : "Defines decision information", "type" : "object", "required" : [ "transactionId", "recommendationCode", "totalScore" ], "properties" : { "transactionId" : { "type" : "string" }, "recommendationCode" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0EnumsRecommendationCode" }, "crossReference" : { "type" : "string", "format" : "uuid" }, "rulesTripped" : { "type" : "string" }, "totalScore" : { "type" : "integer", "format" : "int32" }, "remarks" : { "type" : "string" } } }, "ComHbcApiFraudV0ModelsAdditionalData" : { "description" : "Envelope data", "type" : "object", "required" : [ "inAuthId" ], "properties" : { "inAuthId" : { "type" : "string", "format" : "uuid" } } }, "ComHbcApiFraudV0ModelsTransaction" : { "description" : "Defines data expected to come in from OMS describing a transaction", "type" : "object", "required" : [ "orderId", "groupId", "orderTotal", "shippingCost", "currencyCode", "storeNumber", "banner", "creditCard", "items", "source", "customer" ], "properties" : { "orderId" : { "type" : "string" }, "groupId" : { "type" : "string" }, "orderTotal" : { "type" : "number" }, "shippingCost" : { "type" : "number" }, "currencyCode" : { "type" : "string" }, "storeNumber" : { "type" : "integer", "format" : "int32" }, "salesRep" : { "type" : "string" }, "lastModifiedDate" : { "type" : "string", "format" : "date" }, "banner" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0EnumsBanner" }, "creditCard" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsCreditCard" }, "promos" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsPromo" } }, "items" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsItem" } }, "ipAddress" : { "type" : "string" }, "source" : { "description" : "Order source (web, store, etc)", "type" : "string" }, "customer" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsCustomer" }, "additionalData" : { "$ref" : "#/components/schemas/ComHbcApiFraudV0ModelsAdditionalData", "description" : "Additional `envelope` data sent through our system to f-s, should include InAuthId" } } }, "ComHbcApiFraudV0EnumsBanner" : { "description" : "Our lovely store chains", "type" : "string", "enum" : [ "lat", "s5a", "o5a", "bay" ] }, "ComHbcApiFraudV0EnumsRecommendationCode" : { "description" : "Enum describing the possible responses", "type" : "string", "enum" : [ "reject", "review", "accept" ] }, "ComHbcApiFraudV0EnumsCustomerType" : { "description" : "Possible types of customers", "type" : "string", "enum" : [ "guest", "registered", "employee" ] } } } }