Skip to main content
Kibo supports many payment types, which shoppers can use to provide payments for their orders. This guide is designed to assist in building the payloads to support creating these payments. Every payment is described by a BillingInfo object. The paymentType field selects the kind of payment, and a type-specific sub-object (such as card, check, or purchaseOrder) carries the details for that type. For where these objects appear in a request and the actions you can perform against a payment, see Payment Actions and the Commerce/OMS API Developer Guide.

Supported Payment Types

The paymentType field accepts one of the following string values. Values are case-sensitive and must be sent exactly as shown.
Each payment type must also be enabled and assigned to a gateway for the site before it can be used. See Payment Types for the admin configuration steps.

The BillingInfo Wrapper

BillingInfo is the outer object that wraps every payment. The fields below apply to all payment types; the type-specific sub-objects are described in the sections that follow.
Raw card numbers are never sent to Kibo. Card payments reference a tokenized card ID returned by the payment gateway. See CreditCard for details.

The billingContact Object

billingContact carries the payer’s name and billing address. It is shared by all payment types.

Per-Type Request Formats

Each section below shows the type-specific sub-object schema and a complete BillingInfo example payload. The billingContact is abbreviated as { ... } in the examples; populate it as shown in The billingContact Object.

CreditCard

Card payments use the card sub-object. The card is tokenized by the payment gateway, so paymentServiceCardId holds the gateway card token rather than a raw card number.

Check

Check by mail uses the check sub-object.

StoreCredit

Store credit is applied with the storeCreditCode and storeCreditType fields on BillingInfo directly. There is no nested sub-object.

PurchaseOrder

B2B purchase orders use the purchaseOrder sub-object. The purchase order is authorized against the customer account’s configured credit limit, so the payment method must be enabled on both the site and the individual customer account.

GiftCard

Gift cards are processed through a payment gateway. The BillingInfo sets paymentType to GiftCard, and the gateway gift card details are supplied through the payment’s gatewayGiftCard object. The gatewayGiftCard object has these fields:
The associated gatewayGiftCard on the payment:
Gift card behavior, including whether refunds and credits are issued to the existing card or a new one, is configured per site. See Gateway Gift Cards.

Token

Digital wallet and third-party tokenized payments (for example, Apple Pay) use the token sub-object.
For some third-party sources, the transaction ID is carried on BillingInfo.externalTransactionId (for example, Visa Checkout or Amazon Pay) rather than in the token object.

PaypalExpress

PayPal Express uses a redirect flow rather than a sub-object on BillingInfo. The BillingInfo sets paymentType to PaypalExpress, and the redirect URLs are supplied on the payment action through returnUrl and cancelUrl. The billingContact is typically populated after PayPal redirects the shopper back to your site.

Where BillingInfo Appears in a Request

BillingInfo is submitted in a few different places depending on the operation:
  • Applying a payment to an order or checkout: wrapped in a PaymentAction as newBillingInfo, alongside the actionName and amount. See Payment Actions.
  • Importing a completed order: included on each entry of the order’s payments array and on the order’s billingInfo. See the Commerce/OMS API Developer Guide.
The actionName field on a payment action accepts one of these values: CreatePayment, AuthorizePayment, AuthAndCapture, CapturePayment, CreditPayment, DeclinePayment, RequestCheck, VoidPayment, Rollback, and AcknowledgeError. To create and authorize a new payment from a BillingInfo, use CreatePayment. A minimal payment action that applies a credit card payment looks like this: