CyberSource Payment Links API

Offer your customers a simple, convenient, and fast way to pay with the new online pay by link tool.

OpenAPI Specification

cybersource-payment-links-api-openapi.yml Raw ↑
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 Payment Links API
host: apitest.cybersource.com
basePath: /
schemes:
- https
consumes:
- application/json;charset=utf-8
produces:
- application/hal+json;charset=utf-8
tags:
- name: Payment Links
  description: 'Offer your customers a simple, convenient, and fast way to pay with the new online pay by link tool.

    '
paths:
  /ipl/v2/payment-links:
    post:
      tags:
      - Payment Links
      summary: Create a Payment Link
      description: "Pay by Link is an easy and fast way to securely sell products or receive\ndonations online. This solution is ideal for distributing the same\npayment link to multiple customers. \n\nLinks for making purchases are referred to as fixed-price links, and\nlinks for making donations are referred to as customer-set price links.\n"
      operationId: createPaymentLink
      x-devcenter-metaData:
        categoryTag: Pay_By_Link
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/paybylink/developer/all/rest/paybylink/paybylink-intro.html
      consumes:
      - application/json;charset=utf-8
      produces:
      - application/json
      - application/hal+json
      - application/json;charset=utf-8
      - application/hal+json;charset=utf-8
      parameters:
      - name: createPaymentLinkRequest
        in: body
        required: true
        schema:
          type: object
          required:
          - processingInformation
          - purchaseInformation
          - orderInformation
          properties:
            clientReferenceInformation:
              type: object
              properties:
                partner:
                  type: object
                  properties:
                    developerId:
                      type: string
                      maxLength: 8
                      description: 'Identifier for the developer that integrated a partner solution with Cybersource. Send this value with all requests that are sent through a partner solution built by that developer. Cybersource assigns the ID to the developer.


                        **Note** A developerId set to 999 means the submitted developer ID is incorrect.

                        '
                    solutionId:
                      type: string
                      maxLength: 8
                      description: 'Identifier for the partner that integrated with Cybersource. Send this value with all requests sent through the partner solution. Cybersource assigns the ID to the partner.


                        **Note** A solutionId set to 999 means the submitted solutionId is incorrect.

                        '
            processingInformation:
              type: object
              required:
              - linkType
              description: Contains processing information, such as the type and collection details.
              properties:
                linkType:
                  type: string
                  description: "linkType defines what type of link you want to create.\n\nPossible Values:\n  - `PURCHASE`\n  - `DONATION`\n"
                requestPhone:
                  type: boolean
                  description: Collect the payers phone number during the payment.
                  default: false
                requestShipping:
                  type: boolean
                  description: Collect the payers shipping address during the payment.
                  default: false
            purchaseInformation:
              type: object
              required:
              - purchaseNumber
              description: Contains link specific detail.
              properties:
                purchaseNumber:
                  type: string
                  maxLength: 50
                  description: The purchase number
            orderInformation:
              type: object
              required:
              - amountDetails
              - lineItems
              description: Contains all of the order-related fields, such as the amount and line item details.
              properties:
                amountDetails:
                  type: object
                  required:
                  - currency
                  description: Contains all of the amount-related fields.
                  properties:
                    totalAmount:
                      type: string
                      maxLength: 19
                      description: "Grand total for the order. This value cannot be negative. You can include a decimal point (.), but no other special characters.\nCyberSource truncates the amount to the correct number of decimal places.\n\n**Note** For CTV, FDCCompass, Paymentech processors, the maximum length for this field is 12.\n\n**Important** Some processors have specific requirements and limitations, such as maximum amounts and maximum field lengths.\n\nIf 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. \n\n#### Card Present\nRequired to include either this field or `orderInformation.lineItems[].unitPrice` for the order.\n\n#### Invoicing / Pay By Link\nRequired for creating a new invoice or payment link.\n\n#### PIN Debit\nAmount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount.\n\nRequired field for PIN Debit purchase and PIN Debit credit requests.\nOptional field for PIN Debit reversal requests.\n\n#### GPX\nThis field is optional for reversing an authorization or credit; however, for all other processors, these fields are required.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either this field or the 1st line item in the order and the specific line-order amount in your request. \n\n#### DCC for First Data\nNot used.\n"
                    currency:
                      type: string
                      maxLength: 3
                      description: 'Currency used for the order. Use the three-character [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf)


                        #### Used by

                        **Authorization**

                        Required field.


                        **Authorization Reversal**

                        For an authorization reversal (`reversalInformation`) or a capture (`processingOptions.capture` is set to `true`), you must use the same currency that you used in your payment authorization request.


                        #### PIN Debit

                        Currency for the amount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).

                        Returned by PIN debit purchase.


                        For PIN debit reversal requests, you must use the same currency that was used for the PIN debit purchase or PIN debit credit that you are reversing.

                        For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).


                        Required field for PIN Debit purchase and PIN Debit credit requests.

                        Optional field for PIN Debit reversal requests.


                        #### GPX

                        This field is optional for reversing an authorization or credit.


                        #### DCC for First Data

                        Your local currency.


                        #### Tax Calculation

                        Required for international tax and value added tax only.

                        Optional for U.S. and Canadian taxes.

                        Your local currency.

                        '
                    maxAmount:
                      type: string
                      description: Maximum custom amount allowed for Donation. The customer cannot enter more than maxAmount on payment checkout page.
                    minAmount:
                      type: string
                      description: Minimum custom amount allowed for Donation. The customer cannot enter less than minAmount on payment checkout page. Required for DONATION links.
                lineItems:
                  type: array
                  description: List of the line items from the order.
                  maxItems: 30
                  items:
                    type: object
                    required:
                    - productName
                    description: Line item from the order.
                    properties:
                      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.

                          '
                      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.

                          '
                      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.

                          '
                      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)

                          '
                      productDescription:
                        maxLength: 2000
                        type: string
                        description: Brief description of item.
                      discountAmount:
                        type: string
                        maxLength: 13
                        description: 'Discount amount applied to the item. Maximum of 2 decimal places. You may provide either discountAmount or discountPercent (not both).

                          If both are present, their values must be consistent. Otherwise, a validation error will be returned.

                          '
                        example: '10.00'
                      discountPercent:
                        type: string
                        maxLength: 6
                        description: 'Discount rate applied to the item. Maximum of 3 decimal places. You may provide either discountAmount or discountPercent (not both).

                          If both are present, their values must be consistent; otherwise, a validation error will be returned.

                          Example: 5.25 (=5.25%)

                          '
                        example: '5.25'
                      taxAmount:
                        type: string
                        maxLength: 15
                        description: 'Tax amount applied to the item. This value cannot be negative. Maximum of 2 decimal places. The tax amount and the offer amount must

                          be in the same currency. The tax amount field is additive. If taxAmount is provided but taxRate is not, the taxRate will be calculated.

                          '
                        example: '10.50'
                      taxRate:
                        type: string
                        maxLength: 7
                        description: 'Tax rate applied to the item. Valid range: 1.001% to 99.999%. Maximum of 3 decimal places.

                          If a taxRate is provided but taxAmount is missing or incorrect, the taxAmount based on the given taxRate will be overwritten.

                          Example: 21.00 (=21.00%)

                          '
                        example: '21.00'
          example:
            clientReferenceInformation:
              partner:
                developerId: '3435'
                solutionId: '83745'
            processingInformation:
              linkType: PURCHASE
              requestPhone: false
              requestShipping: false
            purchaseInformation:
              purchaseNumber: '23412'
            orderInformation:
              amountDetails:
                totalAmount: '12.05'
                currency: USD
                minAmount: '1'
              lineItems:
              - productName: First line item's name
                productDescription: First line item's description
                unitPrice: '12.05'
                quantity: '10'
      responses:
        '201':
          description: Created.
          schema:
            title: pblPaymentLinksPost201Response
            type: object
            properties:
              _links:
                type: object
                properties:
                  self:
                    type: object
                    properties:
                      href:
                        type: string
                        description: This is the endpoint of the resource that was created by the successful request.
                      method:
                        type: string
                        description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                  update:
                    type: object
                    properties:
                      href:
                        type: string
                        description: This is the endpoint of the resource that was created by the successful request.
                      method:
                        type: string
                        description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
              id:
                type: string
                maxLength: 26
                description: 'An unique identification number generated by Cybersource to identify the submitted request. Returned by all services.

                  It is also appended to the endpoint of the resource.

                  On incremental authorizations, this value with be the same as the identification number returned in the original authorization response.

                  '
              submitTimeUtc:
                type: string
                description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                  **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                  The `T` separates the date and the time. The `Z` indicates UTC.


                  Returned by Cybersource for all services.

                  '
              status:
                type: string
                description: 'The status of the purchase or donation link.


                  Possible values:

                  - ACTIVE

                  - INACTIVE

                  '
              processingInformation:
                type: object
                required:
                - linkType
                description: Contains processing information, such as the type and collection details.
                properties:
                  linkType:
                    type: string
                    description: "linkType defines what type of link you want to create.\n\nPossible Values:\n  - `PURCHASE`\n  - `DONATION`\n"
                  requestPhone:
                    type: boolean
                    description: Collect the payers phone number during the payment.
                    default: false
                  requestShipping:
                    type: boolean
                    description: Collect the payers shipping address during the payment.
                    default: false
              purchaseInformation:
                type: object
                description: Contains link specific detail.
                properties:
                  purchaseNumber:
                    type: string
                    maxLength: 50
                    description: The purchase number
                  createdDate:
                    type: string
                    x-example: '2018-08-11T22:47:57Z'
                    description: 'Date and time (UTC) the invoice was created.


                      Format: YYYY-MM-DDThh:mm:ssZ Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the time. The Z indicates UTC.

                      '
                  paymentLink:
                    type: string
                    description: Returns the link to a purchase or donation link when the status is `ACTIVE`.
              orderInformation:
                type: object
                description: Contains all of the order-related fields, such as the amount and line item details.
                properties:
                  amountDetails:
                    type: object
                    description: Contains all of the amount-related fields.
                    properties:
                      totalAmount:
                        type: string
                        maxLength: 19
                        description: "Grand total for the order. This value cannot be negative. You can include a decimal point (.), but no other special characters.\nCyberSource truncates the amount to the correct number of decimal places.\n\n**Note** For CTV, FDCCompass, Paymentech processors, the maximum length for this field is 12.\n\n**Important** Some processors have specific requirements and limitations, such as maximum amounts and maximum field lengths.\n\nIf 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. \n\n#### Card Present\nRequired to include either this field or `orderInformation.lineItems[].unitPrice` for the order.\n\n#### Invoicing / Pay By Link\nRequired for creating a new invoice or payment link.\n\n#### PIN Debit\nAmount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount.\n\nRequired field for PIN Debit purchase and PIN Debit credit requests.\nOptional field for PIN Debit reversal requests.\n\n#### GPX\nThis field is optional for reversing an authorization or credit; however, for all other processors, these fields are required.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either this field or the 1st line item in the order and the specific line-order amount in your request. \n\n#### DCC for First Data\nNot used.\n"
                      currency:
                        type: string
                        maxLength: 3
                        description: 'Currency used for the order. Use the three-character [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf)


                          #### Used by

                          **Authorization**

                          Required field.


                          **Authorization Reversal**

                          For an authorization reversal (`reversalInformation`) or a capture (`processingOptions.capture` is set to `true`), you must use the same currency that you used in your payment authorization request.


                          #### PIN Debit

                          Currency for the amount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).

                          Returned by PIN debit purchase.


                          For PIN debit reversal requests, you must use the same currency that was used for the PIN debit purchase or PIN debit credit that you are reversing.

                          For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).


                          Required field for PIN Debit purchase and PIN Debit credit requests.

                          Optional field for PIN Debit reversal requests.


                          #### GPX

                          This field is optional for reversing an authorization or credit.


                          #### DCC for First Data

                          Your local currency.


                          #### Tax Calculation

                          Required for international tax and value added tax only.

                          Optional for U.S. and Canadian taxes.

                          Your local currency.

                          '
                      maxAmount:
                        type: string
                        description: Maximum custom amount allowed for Donation. The customer cannot enter more than maxAmount on payment checkout page.
                      minAmount:
                        type: string
                        description: Minimum custom amount allowed for Donation. The customer cannot enter less than minAmount on payment checkout page. Required for DONATION links.
                  lineItems:
                    type: array
                    description: List of the line items from the order.
                    maxItems: 30
                    items:
                      type: object
                      required:
                      - productName
                      description: Line item from the order.
                      properties:
                        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.

                            '
                        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.

                            '
                        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.

                            '
                        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)

                            '
                        productDescription:
                          maxLength: 2000
                          type: string
                          description: Brief description of item.
                        discountAmount:
                          type: string
                          maxLength: 13
                          description: 'Discount amount applied to the item. Maximum of 2 decimal places. You may provide either discountAmount or discountPercent (not both).

                            If both are present, their values must be consistent. Otherwise, a validation error will be returned.

                            '
                          example: '10.00'
                        discountPercent:
                          type: string
                          maxLength: 6
                          description: 'Discount rate applied to the item. Maximum of 3 decimal places. You may provide either discountAmount or discountPercent (not both).

                            If both are present, their values must be consistent; otherwise, a validation error will be returned.

                            Example: 5.25 (=5.25%)

                            '
                          example: '5.25'
                        taxAmount:
                          type: string
                          maxLength: 15
                          description: 'Tax amount applied to the item. This value cannot be negative. Maximum of 2 decimal places. The tax amount and the offer amount must

                            be in the same currency. The tax amount field is additive. If taxAmount is provided but taxRate is not, the taxRate will be calculated.

                            '
                          example: '10.50'
                        taxRate:
                          type: string
                          maxLength: 7
                          description: 'Tax rate applied to the item. Valid range: 1.001% to 99.999%. Maximum of 3 decimal places.

                            If a taxRate is provided but taxAmount is missing or incorrect, the taxAmount based on the given taxRate will be overwritten.

                            Example: 21.00 (=21.00%)

                            '
                          example: '21.00'
            example:
              _links:
                self:
                  href: /ipl/v2/payment-links/98753
                  method: GET
                update:
                  href: /ipl/v2/payment-links/98753
                  method: PATCH
              id: '98753'
              submitTimeUtc: '2019-06-28T19:48:06Z'
              status: ACTIVE
              processingInformation:
                linkType: PURCHASE
                requestPhone: false
                requestShipping: false
              purchaseInformation:
                purchaseNumber: '23412'
                createdDate: '2018-08-11T22:47:57Z'
                paymentLink: https://pay.cybersource.com/ip

# --- truncated at 32 KB (134 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-payment-links-api-openapi.yml