CyberSource orders API
An order is a service that is used for initiating a transaction with itemized details, shipping, billing and buyer information.
An order is a service that is used for initiating a transaction with itemized details, shipping, billing and buyer information.
swagger: '2.0'
info:
description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
version: 0.0.1
title: CyberSource Merged Spec bankAccountValidation orders API
host: apitest.cybersource.com
basePath: /
schemes:
- https
consumes:
- application/json;charset=utf-8
produces:
- application/hal+json;charset=utf-8
tags:
- name: orders
description: "An order is a service that is used for initiating a transaction with itemized details, shipping, billing and buyer information. \n"
paths:
/pts/v2/intents:
post:
summary: Create an Order
description: "A create order request enables you to send the itemized details along with the order. This API can be used by merchants initiating their transactions with the create order API. \n"
tags:
- orders
operationId: createOrder
x-devcenter-metaData:
categoryTag: Payments
parameters:
- name: createOrderRequest
in: body
required: true
schema:
type: object
properties:
clientReferenceInformation:
type: object
properties:
reconciliationId:
type: string
maxLength: 60
description: 'Reference number for the transaction.
Depending on how your Cybersource account is configured, this value could either be provided in the API request or generated by CyberSource.
The actual value used in the request to the processor is provided back to you by Cybersource in the response.
'
processingInformation:
type: object
properties:
processingInstruction:
type: string
maxLength: 36
description: 'The instruction to process an order.
- default value: ''NO_INSTRUCTION''
- ''ORDER_SAVED_EXPLICITLY''
'
authorizationOptions:
type: object
properties:
authType:
type: string
maxLength: 15
description: "Authorization type. Possible values:\n\n - `AUTOCAPTURE`: automatic capture.\n - `STANDARDCAPTURE`: standard capture.\n - `VERBAL`: forced capture. Include it in the payment request for a forced capture. Include it in the capture request for a verbal payment.\n\n#### Asia, Middle East, and Africa Gateway; Cielo; Comercio Latino; and CyberSource Latin American Processing\nSet this field to `AUTOCAPTURE` and include it in a bundled request to indicate that you are requesting an automatic capture. If your account is configured to enable automatic captures, set this field to `STANDARDCAPTURE` and include it in a standard authorization or bundled request to indicate that you are overriding an automatic capture.\n\n#### Forced Capture\nSet this field to `VERBAL` and include it in the authorization request to indicate that you are performing a forced capture; therefore, you receive the authorization code outside the CyberSource system.\n\n#### Verbal Authorization\nSet this field to `VERBAL` and include it in the capture request to indicate that the request is for a verbal authorization.\n\n#### for PayPal ptsV2CreateOrderPost400Response\nSet this field to 'AUTHORIZE' or 'CAPTURE' depending on whether you want to invoke delayed capture or sale respectively.\n"
actionList:
type: array
description: 'Array of actions (one or more) to be included in the order to invoke bundled services along with order.
Possible values:
- `AP_ORDER`: Use this when Alternative Payment Order service is requested.
'
items:
type: string
highRiskTransactionFlag:
type: string
description: 'Indicates if the transaction is flagged as high risk.
'
transactionRetry:
type: string
description: 'Indicates if the transaction is a retry.
'
lastOneHrTransactionCount:
type: string
description: 'The number of transactions in the last one hour.
'
lastOneDayTransactionCount:
type: string
description: 'The number of transactions in the last one day.
'
lastThreeMonthsTxnCount:
type: string
description: 'The number of transactions in the last three months.
'
totalTransactionCount:
type: string
description: 'The total number of transactions.
'
pinVerification:
type: string
description: 'Indicates if PIN verification is required.
'
faceIdVerification:
type: string
description: 'Indicates if face ID verification is required.
'
userPassedVerification:
type: string
description: 'Indicates if the user passed verification.
'
ipAddress:
type: string
description: 'The IP address of the user.
'
transactionDate:
type: string
description: 'The date of the transaction.
'
tangible:
type: string
description: 'Indicates if the transaction involves tangible goods.
'
merchantInformation:
type: object
properties:
merchantDescriptor:
type: object
properties:
name:
type: string
description: 'Your merchant name.
**Note** For Paymentech processor using Cybersource Payouts, the maximum data length is 22.
#### PIN debit
Your business name. This name is displayed on the cardholder''s statement. When you
include more than one consecutive space, extra spaces are removed.
When you do not include this value in your PIN debit request, the merchant name from your account is used.
**Important** This value must consist of English characters.
Optional field for PIN debit credit or PIN debit purchase requests.
#### Airline processing
Your merchant name. This name is displayed on the cardholder''s statement. When you include more than one consecutive space, extra spaces are removed.
**Note** Some airline fee programs may require the original ticket number (ticket identifier) or the ancillary service description in positions 13 through 23 of this field.
**Important** This value must consist of English characters.
Required for captures and credits.
'
email:
type: string
maxLength: 254
description: Email address of the merchant.
cancelUrl:
type: string
maxLength: 255
description: customer would be redirected to this url based on the decision of the transaction
successUrl:
type: string
maxLength: 2048
description: customer would be redirected to this url based on the decision of the transaction
paymentInformation:
type: object
properties:
paymentType:
type: object
properties:
name:
type: string
description: 'A Payment Type is an agreed means for a payee to receive legal tender from a payer. The way one pays for a commercial financial transaction. Examples: Card, Bank Transfer, Digital, Direct Debit.
Possible values:
- `CARD` (use this for a PIN debit transaction)
- `CHECK` (use this for all eCheck payment transactions - ECP Debit, ECP Follow-on Credit, ECP StandAlone Credit)
- `bankTransfer` (use for Online Bank Transafer for methods such as P24, iDeal, Estonia Bank, KCP)
- `localCard` (KCP Local card via Altpay)
- `carrierBilling` (KCP Carrier Billing via Altpay)
'
method:
type: object
properties:
name:
type: string
description: "A Payment Type is enabled through a Method. Examples: Visa, Master Card, ApplePay, iDeal, 7Eleven, alfamart, etc\n#### Via PayPal ptsV2CreateOrderPost201Response\n - 'payPal'\n - 'venmo'\n"
tokenizedPaymentMethod:
type: object
properties:
description:
type: string
maxLength: 128
description: 'Description of the vaulted payment method shown to the buyer during checkout and in their PayPal account.
'
usagePattern:
type: string
maxLength: 30
description: 'Indicates how the merchant will primarily use the vaulted payment method. Valid values:
- "IMMEDIATE": For on-demand, instant payments. These payments are variable in both amount and frequency and will be used to pay for goods or services before they are rendered to the buyer
- "DEFERRED": For post-pay payments; that is, payments for goods or services that have already been rendered to the buyer
- "RECURRING_PREPAID": For recurring payments before services are rendered.
- "RECURRING_POSTPAID": For recurring payments after services are rendered.
- "THRESHOLD_PREPAID": For payments when a pre-defined threshold is reached before services are rendered.
- "THRESHOLD_POSTPAID": For payments when a pre-defined threshold is reached after services are rendered.
'
usageType:
type: string
maxLength: 255
description: 'Indicates the type of vaulting relationship. Valid values:
- "MERCHANT": Single merchant relationship.
- "PLATFORM": Platform hosting multiple merchants.
'
allowMultipleTokens:
type: string
description: 'Create multiple payment tokens for the same payer, merchant/platform combination. This helps to identify customers distinctly even though they may share the same PayPal account.
'
industryType:
type: string
description: 'Indicates the industry type. Possible Values:
- "Events"
- "Ticketing"
- "Fuel"
- "GAMING"
- "DIGITAL GOODS"
- "TELCO"
- "Token Service Providers"
- "Gambling"
- "CFDs"
- "car rental"
- "hotel"
- "transportation"
- "travel package"
- "Cruise Line"
- "P2P"
- "Retail"
- "Food"
- "Groceries"
- "Ride Sharing"
- "Taxi"
- "Remittance"
- "Crypto"
- "Marketplaces"
'
eWallet:
type: object
properties:
accountId:
type: string
maxLength: 26
description: 'The unique ID for a customer generated by PayPal.
'
orderInformation:
type: object
properties:
amountDetails:
type: object
properties:
totalAmount:
type: string
maxLength: 32
description: 'Grand total for the order. This value cannot be negative. You can include a decimal point (.), but you cannot include any other special characters. CyberSource truncates the amount to the correct number of decimal places
'
currency:
type: string
maxLength: 3
description: 'Currency used for the order
'
discountAmount:
type: string
maxLength: 32
description: "Discount amount for the transaction. \n"
shippingAmount:
type: string
maxLength: 32
description: 'Aggregate shipping charges for the transactions.
'
shippingDiscountAmount:
type: string
maxLength: 32
description: "Shipping discount amount for the transaction. \n"
taxAmount:
type: string
maxLength: 32
description: "Total tax amount. \n"
insuranceAmount:
type: string
maxLength: 32
description: "Amount being charged for the insurance fee. \n"
dutyAmount:
type: string
maxLength: 32
description: "Amount being charged as duty amount. \n"
billTo:
type: object
properties:
email:
type: string
minLength: 3
maxLength: 254
description: 'Email address of the PayPal account holder.
'
shipTo:
type: object
properties:
firstName:
type: string
maxLength: 60
description: 'First name of the recipient.
#### Litle
Maximum length: 25
#### All other processors
Maximum length: 60
Optional field.
'
lastName:
type: string
maxLength: 60
description: 'Last name of the recipient.
#### Litle
Maximum length: 25
#### All other processors
Maximum length: 60
Optional field.
'
address1:
type: string
maxLength: 60
description: 'First line of the shipping address.
Required field for authorization if any shipping address information is included in the request; otherwise, optional.
#### Tax Calculation
Optional field for U.S. and Canadian taxes. Not applicable to international and value added taxes.
Billing address objects will be used to determine the cardholder''s location when shipTo objects are not present.
'
address2:
type: string
maxLength: 60
description: 'Second line of the shipping address.
Optional field.
#### Tax Calculation
Optional field for U.S. and Canadian taxes. Not applicable to international and value added taxes.
Billing address objects will be used to determine the cardholder''s location when shipTo objects are not present.
'
locality:
type: string
maxLength: 50
description: 'City of the shipping address.
Required field for authorization if any shipping address information is included in the request and shipping to the U.S. or
Canada; otherwise, optional.
#### Tax Calculation
Optional field for U.S. and Canadian taxes. Not applicable to international and value added taxes.
Billing address objects will be used to determine the cardholder''s location when shipTo objects are not present.
'
administrativeArea:
type: string
maxLength: 50
description: "State or province of the shipping address. Use the [State, Province, and Territory Codes for the United States and Canada](https://developer.cybersource.com/library/documentation/sbc/quickref/states_and_provinces.pdf) (maximum length: 2) \n\nRequired field for authorization if any shipping address information is included in the request and shipping to the U.S.\nor Canada; otherwise, optional.\n\n#### Tax Calculation\nOptional field for U.S. and Canadian taxes. Not applicable to international and value added taxes.\nBilling address objects will be used to determine the cardholder's location when shipTo objects are not present.\n"
postalCode:
type: string
maxLength: 32
description: 'Postal code for the shipping address. The postal code must consist of 5 to 9 digits.
Required field for authorization if any shipping address information is included in the request and
shipping to the U.S. or Canada; otherwise, optional.
When the billing country is the U.S., the 9-digit postal code must follow this format:
[5 digits][dash][4 digits]
Example 12345-6789
When the billing country is Canada, the 6-digit postal code must follow this format:
[alpha][numeric][alpha][space][numeric][alpha][numeric]
Example A1B 2C3
#### American Express Direct
Before sending the postal code to the processor, all nonalphanumeric characters are removed and, if the
remaining value is longer than nine characters, the value is truncated starting from the right side.
#### Tax Calculation
Optional field for U.S. and Canadian taxes. Not applicable to international and value added taxes.
Billing address objects will be used to determine the cardholder''s location when shipTo objects are not present.
'
country:
type: string
description: 'Country of the shipping address. Use the two-character [ISO Standard Country Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)
Required field for authorization if any shipping address information is included in the request; otherwise, optional.
#### Tax Calculation
Optional field for U.S., Canadian, international tax, and value added taxes.
Billing address objects will be used to determine the cardholder''s location when shipTo objects are not present.
'
maxLength: 3
method:
type: string
maxLength: 10
description: 'Shipping method for the product. Possible values:
- lowcost: Lowest-cost service
- sameday: Courier or same-day service
- oneday: Next-day or overnight service
- twoday: Two-day service
- threeday: Three-day service
- pickup: Store pick-up
- other: Other shipping method
- none: No shipping method because product is a service or subscription
Required for American Express SafeKey (U.S.).
'
email:
type: string
description: 'Customer''s email address, including the full domain name.
'
phoneNumber:
type: string
description: 'Phone number associated with the shipping address.
'
lineItems:
type: array
maxItems: 10
items:
type: object
properties:
productName:
type: string
maxLength: 255
description: 'For an authorization or capture transaction (`processingOptions.capture` is `true` or `false`),
this field is required when `orderInformation.lineItems[].productCode` is not `default` or one of
the other values that are related to shipping and/or handling.
#### Tax Calculation
Optional field for U.S., Canadian, international tax, and value added taxes.
'
productDescription:
type: string
description: Brief description of item.
productSku:
type: string
maxLength: 255
description: 'Product identifier code. Also known as the Stock Keeping Unit (SKU) code for the product.
For an authorization or capture transaction (`processingOptions.capture` is set to `true` or `false`), this field is required when `orderInformation.lineItems[].productCode` is not set to **default** or one of the other values that are related to shipping and/or handling.
#### Tax Calculation
Optional field for U.S. and Canadian taxes. Not applicable to international and value added taxes.
For an authorization or capture transaction (`processingOptions.capture` is set to `true` or `false`), this field is
required when `orderInformation.lineItems[].productCode` is not `default` or one of the values related to shipping and/or handling.
'
quantity:
type: integer
minimum: 1
maximum: 999999999
default: 1
description: 'Number of units for this order. Must be a non-negative integer.
The default is `1`. For an authorization or capture transaction (`processingOptions.capture` is set to `true` or `false`),
this field is required when `orderInformation.lineItems[].productCode` is not `default` or one of the other values
related to shipping and/or handling.
#### Tax Calculation
Optional field for U.S., Canadian, international tax, and value added taxes.
'
typeOfSupply:
type: string
maxLength: 2
description: "Flag to indicate whether the purchase is categorized as goods or services.\nPossible values:\n\n - 00: goods\n - 01: services\n"
unitPrice:
type: string
maxLength: 15
description: 'Per-item price of the product. This value for this field cannot be negative.
You must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.
You can include a decimal point (.), but you cannot include any other special characters.
The value is truncated to the correct number of decimal places.
#### DCC with a Third-Party Provider
Set this field to the converted amount that was returned by the DCC provider. You must include either
the 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.
#### Tax Calculation
Required field for U.S., Canadian, international and value added taxes.
#### Zero Amount Authorizations
If your processor supports zero amount authorizations, you can set this field to 0 for the
authorization to check if the card is lost or stolen.
#### Maximum Field Lengths
For GPN and JCN Gateway: Decimal (10)
All other processors: Decimal (15)
'
totalAmount:
type: string
maxLength: 13
description: 'Total amount for the item. Normally calculated as the unit price times quantity.
When `orderInformation.lineItems[].productCode` is "gift_card", this is the purchase amount total
for prepaid gift cards in major units.
Example: 123.45 USD = 123
'
taxAmount:
type: string
maxLength: 15
description: "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n"
invoiceDetails:
type: object
properties:
productDescription:
type: string
description: Brief description of item.
senderInformation:
type: object
properties:
account:
type: object
properties:
number:
type: string
description: 'The account number of the sender.
'
firstName:
type: string
description: 'The first name of the sender.
'
lastName:
type: string
description: 'The last name of the sender.
'
email:
type: string
description: 'The email address of the sender.
'
phoneNumber:
type: string
description: 'The phone number of the sender.
'
countryCode:
type: string
description: 'The country code of the sender.
'
createDate:
type: string
description: 'The date when the sender''s account was created.
'
postalCode:
type: string
description: 'The postal code of the sender.
'
riskPopularityScore:
type: string
description: 'The risk popularity score of the sender.
'
eventInformation:
type: object
properties:
date:
type: string
description: 'The date of the event.
'
type:
type: string
description: 'The type of the event.
'
totalTickets:
type: string
description: 'The total number of tickets for the event.
'
travelInformation:
type: object
properties:
agency:
type: object
properties:
startDate:
type: string
description: 'The start date of the agency''s service.
'
endDate:
type: string
description: 'The end date of the agency''s service.
'
changeOfGuest:
type: string
description: 'Indicates if there is a change of guest.
'
countryCode:
type: string
description: 'The country code of the agency.
'
locality:
type: string
description: 'The locality of the agency.
'
postalCode:
type: string
description: 'The postal code of the agency.
'
journeyType:
type: string
description: 'The type of journey.
'
actualFinalDestination:
type: string
description: 'The actual final destination of the travel.
'
recipientInformation:
type: object
properties:
accountId:
type: string
description: 'The account ID of the recipient.
'
createDate:
type: string
description: 'The date when the recipient''s account was created.
'
email:
type: string
description: 'The email address of the recipient
'
countryCode:
# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-orders-api-openapi.yml