info: title: Convenient Checkout Api contact: name: CCGLeads email: CCGLeads@ds.uhc.com version: v1 description: Convenient Checkout Gateway API - Prod termsOfService: >- https://legacy.optumdeveloper.com/content/odv-optumdev/optum-developer/en/legal-terms/terms-of-use.html x-shortDescription: Convenient Checkout Gateway API paths: /checkout-sessions: post: tags: - Internal summary: Create Checkout Session security: - gateway: - financial/commerce/checkout:user responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '202': description: ACCEPTED content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '406': content: application/json: schema: $ref: '#/components/schemas/ErrorResourceWithErrorDetails' description: Not Acceptable '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - in: header name: X-Merchant-Id schema: type: string format: uuid required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckoutRequest' required: true /checkout-sessions/{sessionId}/child-sessions: post: tags: - Internal summary: Create Child CheckOut Session security: - gateway: - financial/commerce/checkout:user responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '202': description: ACCEPTED content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '406': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Not Acceptable '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - in: header name: X-Merchant-Id schema: type: string format: uuid required: true - in: path name: sessionId schema: type: string description: parent session Id required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/ChildCheckoutRequest' required: true /checkout-sessions/{sessionId}: get: tags: - Internal summary: Get CheckOut Session security: - gateway: - financial/commerce/checkout:user responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '202': description: ACCEPTED content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Unauthorized '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Not Found '406': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Not Acceptable '410': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Gone '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - in: path name: sessionId schema: type: string description: sessionId required: true - in: query name: init schema: type: boolean description: >- if true, appearance object will be returned, else apperance object is null required: false /checkout-sessions/{sessionId}/cancel: patch: tags: - Internal summary: Cancel CheckOut Session security: - gateway: - financial/commerce/checkout:user responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '202': description: ACCEPTED content: application/json: schema: $ref: '#/components/schemas/CheckoutResponse' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '406': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Not Acceptable '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - in: path name: sessionId schema: type: string description: sessionId required: true - in: header name: X-Merchant-Id schema: type: string format: uuid required: true /api-ccg/payments: post: tags: - Internal summary: Create Payment security: - gateway: - financial/commerce/checkout:user description: ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET` `PAYMENT` responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResourcePaymentResponse' '202': description: OK content: application/json: schema: $ref: '#/components/schemas/ResourcePaymentResponse' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '406': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Not Acceptable '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - in: header name: X-Merchant-Id schema: type: string format: uuid required: true - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod operationId: createPaymentIntent requestBody: content: application/json: schema: $ref: '#/components/schemas/PaymentRequest' required: true /api-ccg/payments/{paymentId}: get: tags: - Internal summary: Get Payment Status by PaymentId security: - gateway: - financial/commerce/checkout:user description: ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET`, `PAYMENT` responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResourcePaymentResponse' '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/ResourcePaymentResponse' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Forbidden '406': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Not Acceptable '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - in: header name: X-Merchant-Id schema: type: string format: uuid required: true - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: paymentId schema: type: string required: true operationId: getPayments /api-ccg/payments/{paymentId}/confirm: get: tags: - Internal summary: Confirm Payment Status by PaymentId security: - gateway: - financial/commerce/checkout:user description: ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET`, `PAYMENT` responses: '202': description: Accepted content: application/json: schema: $ref: '#/components/schemas/ResourcePaymentResponse' '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Forbidden '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - in: header name: X-Merchant-Id schema: type: string format: uuid required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: paymentId schema: type: string required: true operationId: confirmPayments /api-ccg/customers/{id}/setup-payment-methods: post: tags: - Internal security: - gateway: - financial/commerce/checkout:user description: >- ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET` `PAYMENT_METHOD_ENTRY` `WALLET` responses: '202': content: application/json: schema: $ref: '#/components/schemas/ApiResponseSetupPaymentMethodResponse' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - name: X-Merchant-Id in: header required: true schema: type: string - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: id schema: type: string format: uuid required: true operationId: Create Setup PaymentMethod requestBody: content: application/json: schema: $ref: '#/components/schemas/SetupPaymentMethodRequest' required: true /api-ccg/customers/{id}/setup-payment-methods/{setup-payment-method-id}: get: tags: - Internal security: - gateway: - financial/commerce/checkout:user description: >- ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET` `PAYMENT_METHOD_ENTRY` `WALLET` responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApiResponseSetupPaymentMethodResponse' description: OK '202': content: application/json: schema: $ref: '#/components/schemas/ApiResponseSetupPaymentMethodResponse' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - name: X-Merchant-Id in: header required: true schema: type: string - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: id schema: type: string format: uuid required: true - in: path name: setup-payment-method-id schema: type: string format: uuid required: true operationId: Get Setup PaymentMethod By Id /api-ccg/customers/{id}/payment-methods: get: tags: - Internal security: - gateway: - financial/commerce/checkout:user description: ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET` responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/PaymentMethod' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - name: X-Merchant-Id in: header required: true schema: type: string - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: id schema: type: string format: uuid required: true operationId: Get Payment Methods /api-ccg/customers/{id}/payment-methods/{payment-method-id}: get: tags: - Internal security: - gateway: - financial/commerce/checkout:user description: ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET` responses: '200': content: application/json: schema: $ref: '#/components/schemas/ApiResponsePaymentMethod' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Bad Request '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - name: X-Merchant-Id in: header required: true schema: type: string - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: id schema: type: string format: uuid required: true - in: path name: payment-method-id schema: type: string format: uuid required: true operationId: Get Payment Method patch: description: >- This API is deprecated, please update to [/payment-methods/{payment-method-id}](/api-reference-internal/#tag/Internal/paths/~1payment-methods~1%7Bpayment-method-id%7D/patch) tags: - Internal security: - gateway: - financial/commerce/checkout:user responses: '202': content: application/json: schema: $ref: '#/components/schemas/ApiResponsePaymentMethod' description: Accepted '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - name: X-Merchant-Id in: header required: true schema: type: string - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: id schema: type: string format: uuid required: true - in: path name: payment-method-id schema: type: string format: uuid required: true operationId: Update Payment Method deprecated: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCardPaymentMethodCommand' required: true delete: tags: - Internal security: - gateway: - financial/commerce/checkout:user description: ALLOWED SESSION MODES - `PAYMENT_WITH_WALLET` responses: '204': description: Deleted successfully. '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResource' description: Internal Server Error parameters: - name: X-Merchant-Id in: header required: true schema: type: string - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true - in: header name: X-Upstream-Env schema: type: string enum: - dev - stage - test required: true description: applicable only for Non prod - in: path name: id schema: type: string format: uuid required: true - in: path name: payment-method-id schema: type: string format: uuid required: true operationId: Delete Payment Method /payment-methods/{payment-method-id}: patch: tags: - Internal security: - gateway: - financial/commerce/nonprodcheckout:user summary: Update Payment Method by payment-method-id parameters: - in: path name: payment-method-id schema: type: string format: uuid required: true - in: header description: Specify the env value, Only required for Non-Prod name: X-Upstream-Env schema: type: string format: string enum: - dev - stage - test required: true - name: X-Merchant-Id in: header required: true schema: type: string - in: header name: X-Customer-Id schema: type: string required: true - in: header name: X-Checkout-Id schema: type: string format: uuid required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/WalletManagementPaymentMethodUpdateRequest' responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ApiResponsePaymentMethod' description: OK '202': description: ACCEPTED content: application/json: schema: $ref: '#/components/schemas/ApiResponsePaymentMethod' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResource' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorAuthorizationResource' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorAuthorizationResource' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api-ccg/customers/banks/routing/{routingNumber}: get: tags: - Internal summary: Get Bank Routing Number security: - gateway: - financial/commerce/checkout:user responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BankInfoResponse' parameters: - in: path name: routingNumber schema: type: string description: Routing number belonging to the bank you are trying to locate required: true x-slug: checkout openapi: 3.0.1 servers: - url: https://dev-wallet.healthsafepay.com description: Dev CCG Api Server - url: https://stg-wallet.healthsafepay.com description: stage CCG Api Server - url: https://test-wallet.healthsafepay.com description: test CCG Api Server - url: https://api.uhg.com/api/financial/commerce/checkout/v1 description: CCG Api Server security: - gateway: - financial/commerce/checkout:all x-package: package: financial subpackage: commerce components: schemas: Card: type: object properties: type: type: string enum: - CARD last4: type: string status: enum: - ACTIVE - EXPIRED type: string readOnly: true cardBrand: enum: - VISA - AMEX - DINERS - DISCOVER - JCB - MASTERCARD - UNIONPAY - UNKNOWN type: string expiryYear: type: integer format: int64 nameOnCard: type: string expiryMonth: type: integer format: int64 vendorPaymentMethodFingerprint: type: string CardResponse: type: object properties: last4: type: string status: enum: - ACTIVE - EXPIRED type: string readOnly: true cardBrand: enum: - VISA - AMEX - DINERS - DISCOVER - JCB - MASTERCARD - UNIONPAY - UNKNOWN type: string expiryYear: type: integer format: int64 nameOnCard: type: string expiryMonth: type: integer format: int64 zipCode: type: string Customer: type: object properties: id: type: string name: type: string idType: type: string Resource: type: object properties: url: type: string data: type: object ErrorResource: type: object properties: title: type: string detail: type: string status: type: integer format: int32 ErrorResourceWithErrorDetails: type: object properties: title: type: string detail: type: string status: type: integer format: int32 errorDetails: $ref: '#/components/schemas/ErrorDetails' ErrorDetails: type: object properties: code: type: string message: type: string declineCode: type: string networkDeclineCode: type: string networkAdviceCode: type: string Appearance: type: object properties: font: $ref: '#/components/schemas/font' pallete: $ref: '#/components/schemas/pallete' font: type: object properties: fontFamily: type: string description: font family used by widget fontSources: type: array description: font source items: $ref: '#/components/schemas/fontsource' fontsource: properties: cssSrc: type: string family: type: string src: type: string style: type: string weight: type: string pallete: type: object properties: primary: $ref: '#/components/schemas/hexcolor' secondary: $ref: '#/components/schemas/hexcolor' hexcolor: type: object properties: dark: type: string main: type: string light: type: string contrastText: type: string PaymentMethod: type: object properties: id: type: string format: uuid card: $ref: '#/components/schemas/Card' status: enum: - INITIATED - COMPLETED - DELETED type: string vendor: enum: - STRIPE type: string default: type: boolean customerId: type: string format: uuid paymentMethodType: enum: - CARD - BANK_ACCOUNT type: string vendorPaymentMethodId: type: string PaymentRequest: type: object required: - amount properties: amount: type: integer format: int64 customer: $ref: '#/components/schemas/CustomerDetail' metaData: type: object additionalProperties: type: string paymentType: type: string deprecated: true enum: - SALE - PRE_AUTH authorizeCard: type: boolean description: >- false - SALE, true - PRE_AUTH; Applicable payment method types = [CARD] default: false partialAuthorization: description: >- When true, card issuers will consider the payment for partial authorization. This flag shall be provided in combination with authorizeCard flag. Applicable payment method types = [CARD] type: boolean default: false paymentMethodId: type: string format: uuid description: required, only when making payment with stored paymentMethod; paymentMethod: $ref: '#/components/schemas/paymentMethodRequest' paymentDescription: type: string maxLength: 100 description: >- Payment description that will be useful for user to identify the payment. merchantTransactionId: type: string ApiResponsePaymentMethod: type: object properties: url: type: string data: $ref: '#/components/schemas/PaymentMethod' WalletManagementPaymentMethodUpdateRequest: type: object properties: isDefault: type: boolean nickname: type: string maxLength: 30 description: can only contain letters and numbers card: type: object properties: expiryYear: type: integer format: int32 description: expiry year cannot be past and cannot be greater than 50yrs expiryMonth: type: integer format: int32 nameOnCard: type: string zipCode: type: string description: allowed only 5 digits pattern: ^\d{5}$ example: '99950' manufacturerCard: description: >- Only Agents can flag certain cards as manufacturer cards. Cards flagged as manufacturer cards cannot be default card. type: boolean agent: $ref: '#/components/schemas/Agent' paymentMethodDetails: oneOf: - $ref: '#/components/schemas/UpdateCard' - $ref: '#/components/schemas/UpdateUSBankAccountDetails' UpdateCard: type: object properties: type: type: string enum: - CARD last4: type: string status: enum: - ACTIVE - EXPIRED type: string readOnly: true cardBrand: enum: - VISA - AMEX - DINERS - DISCOVER - JCB - MASTERCARD - UNIONPAY - UNKNOWN type: string expiryYear: type: integer format: int64 description: expiry year cannot be past and cannot be greater than 50yrs nameOnCard: type: string expiryMonth: type: integer format: int64 zipCode: type: string description: allowed only 5 digits pattern: ^\d{5}$ example: '99950' manufacturerCard: type: boolean UpdateUSBankAccountDetails: type: object allOf: - $ref: '#/components/schemas/AbstractPaymentMethodDetails' - type: object properties: type: type: string enum: - BANK_ACCOUNT nameOnAccount: type: string ErrorAuthorizationResource: type: object properties: message: type: string PaymentMethodRequest: required: - vendor type: object properties: type: type: string enum: - CARD - BANK_ACCOUNT vendorPaymentMethodId: type: string vendor: type: string enum: - STRIPE nickname: pattern: ^(?!\s{2,})(?=.{0,30}$)([a-zA-Z0-9]+(\s[a-zA-Z0-9]+)*)?$ type: string sourceProvider: $ref: '#/components/schemas/SourceProvider' card: $ref: '#/components/schemas/Card' agent: $ref: '#/components/schemas/Agent' paymentMethodDetails: oneOf: - $ref: '#/components/schemas/Card' - $ref: '#/components/schemas/USBankAccount' default: type: boolean SetupPaymentMethodRequest: required: - paymentMethod type: object properties: paymentMethodType: type: string enum: - CARD - BANK_ACCOUNT paymentMethod: $ref: '#/components/schemas/PaymentMethodRequest' CheckoutSessionConfig: type: object properties: modes: type: array items: enum: - PAYMENT - PAYMENT_WITH_WALLET - PAYMENT_METHOD_ENTRY - WALLET description: > *Defaults to __PAYMENT__ for guest* \ *Defaults to __PAYMENT_WITH_WALLET__ for customer* \ Currently we support only __PAYMENT_METHOD_ENTRY__ and __PAYMENT_WITH_WALLET__ in non-prod. The supported modes are explained here [Widget Capabilities](https://docs.healthsafepay.com/docs/developers/convenient-checkout-ui/widget-capabilities/) paymentMethodChannel: $ref: '#/components/schemas/PaymentMethodChannel' privacyPolicyUrl: type: string description: Privacy Policy URL senderEmailAddress: type: string description: >- used for populating email's `from` field when sending email; Validated against merchant configured SenderEmailAddresses, failing which, defaults to 'no-reply@ccg.optum.com' CheckoutSessionConfigResponse: type: object properties: modes: type: array items: enum: - PAYMENT - PAYMENT_WITH_WALLET - PAYMENT_METHOD_ENTRY - WALLET description: > *Defaults to __PAYMENT__ for guest* \ *Defaults to __PAYMENT_WITH_WALLET__ for customer* \ Currently we support only __PAYMENT_METHOD_ENTRY__ and __PAYMENT_WITH_WALLET__ in non-prod. The supported modes are explained here [Widget Capabilities](https://docs.healthsafepay.com/docs/developers/convenient-checkout-ui/widget-capabilities/) paymentMethod: type: array items: properties: type: type: string enum: - CARD - BANK_ACCOUNT channels: type: array items: properties: type: type: string enum: - TERMINAL - TEXT - EMAIL - WEBFORM order: type: int enabled: type: boolean paymentMethodChannel: type: object properties: card: type: array items: enum: - TERMINAL - TEXT - EMAIL - WEBFORM description: >- deprecated. use 'data.checkoutSession.checkoutRequest.config.paymentMethod' cardChannels: type: array items: properties: type: type: string enum: - TERMINAL - TEXT - EMAIL - WEBFORM order: type: int enabled: type: boolean description: >- deprecated. use 'data.checkoutSession.checkoutRequest.config.paymentMethod' privacyPolicyUrl: type: string description: Privacy Policy URL senderEmailAddress: type: string description: >- used for populating email's `from` field when sending email; Validated against merchant configured SenderEmailAddresses, failing which, defaults to no-reply@ccg.optum.com Agent: required: - userId type: object properties: firstName: maxLength: 50 minLength: 0 type: string lastName: maxLength: 50 minLength: 0 type: string isAccessVerified: type: boolean userId: maxLength: 50 minLength: 0 type: string SourceProvider: type: object description: The source provider of the payment method. properties: name: description: To identify the source name of the Payment method. type: string enum: - CCG - GOOGLE_PAY - APPLE_PAY default: CCG required: false BasePaymentMethodDetailsDTO: type: object properties: type: type: string enum: - CARD - BANK_ACCOUNT discriminator: propertyName: type USBankAccount: required: - accountNumber - accountType - nameOnAccount - routingNumber type: object allOf: - type: object properties: type: type: string enum: - BANK_ACCOUNT routingNumber: pattern: '[\d]{9}' type: string accountNumber: maxLength: 17 minLength: 0 pattern: ^[0-9]*$ type: string accountType: pattern: checking | savings type: string nameOnAccount: type: string ErrorResponse: type: object properties: errorGroup: type: string enum: - CUSTOMER_ERROR - PAYMENT_METHOD_ERROR - PAYMENT_ERROR - INVALID_REQUEST - INTERNAL_ERROR - WARNING errorCode: type: string message: type: string httpStatus: type: string enum: - 400 BAD_REQUEST - 500 INTERNAL_SERVER_ERROR PaymentMethodWarning: type: object properties: code: type: string title: type: string description: type: string SetupPaymentMethodResponse: type: object properties: id: type: string format: uuid platformVendorMerchantId: type: string vendorSetupPaymentMethodSecret: type: string status: type: string enum: - WAITING_FOR_CUSTOMER_CREATION - INITIATED - PENDING - COMPLETED - FAILED paymentMethodId: type: string format: uuid paymentMethodType: type: string enum: - CARD - BANK_ACCOUNT error: $ref: '#/components/schemas/ErrorResponse' warning: $ref: '#/components/schemas/PaymentMethodWarning' UpdateCardPaymentMethodCommand: type: object properties: default: type: boolean expiryYear: type: integer format: int32 nameOnCard: type: string expiryMonth: type: integer format: int32 nickname: type: string zipCode: type: string ApiResponseSetupPaymentMethodResponse: type: object properties: url: type: string data: $ref: '#/components/schemas/SetupPaymentMethodResponse' PaymentMethodObjectResponse: type: object properties: id: type: string format: uuid card: $ref: '#/components/schemas/CardResponse' default: type: boolean paymentMethodType: enum: - CARD - BANK_ACCOUNT type: string nickname: type: string error: type: object default: null status: type: string enum: - COMPLETED paymentMethodDetails: oneOf: - $ref: '#/components/schemas/Card' - $ref: '#/components/schemas/USBankAccountDetails' AbstractPaymentMethodDetails: type: object properties: type: type: string discriminator: propertyName: type USBankAccountDetails: type: object allOf: - $ref: '#/components/schemas/AbstractPaymentMethodDetails' - type: object properties: type: type: string enum: - BANK_ACCOUNT accountHolderType: type: string accountType: type: string bankName: type: string last4: type: string routingNumber: type: string nameOnAccount: type: string PaymentResponse: type: object properties: id: type: string format: uuid amount: description: Amount requested for payment type: integer format: int64 authorizedAmount: description: Maximum amount approved for capture type: integer format: int64 capturedAmount: description: Amount immediately settled (or) successfully captured type: integer format: int64 description: type: string merchantTransactionId: type: string merchantId: type: string format: uuid authorizeCard: type: boolean default: false partialAuthorization: description: >- When true, indicates the payment could have been partially authorized based on the card issuer and the maximum amount available for capture can be referred from `authorizedAmount` field. type: boolean default: false paymentType: deprecated: true type: string enum: - PRE_AUTH - SALE currencyCode: type: string customerId: type: string format: uuid status: type: string enum: - INITIATED - PENDING - PROCESSING - COMPLETED - CANCELED - FAILED - PENDING_FOR_CUSTOMER_CREATION - PENDING_FOR_PAYMENT_METHOD_CREATION vendor: type: string vendorPaymentId: type: string vendorMerchantId: type: string paymentMethodId: type: string format: uuid description: payment method id will be passed for existing payment method checkoutId: type: string format: uuid metaData: type: object additionalProperties: type: string paymentCancellationReason: enum: - DUPLICATE - FRAUDULENT - REQUESTED_BY_CUSTOMER - ABANDONED type: string paymentCancellationMessage: type: string chargeDetails: $ref: '#/components/schemas/ChargeDetails' ChargeDetails: type: object properties: vendorChargeId: type: string format: uuid amount: type: integer format: int64 amountCaptured: type: integer format: int64 amountRefunded: type: integer currencyCode: type: string statementDescriptor: type: string createdAt: type: integer format: int64 paymentMethodType: type: string enum: - CARD - CARD_PRESENT - UNKNOWN card: type: object properties: last4: type: string expiryMonth: type: integer format: int64 expiryYear: type: integer format: int64 countryCode: type: string brand: type: string enum: - VISA - AMEX - DINERS - DISCOVER - JCB - MASTERCARD - UNIONPAY - UNKNOWN vendorPaymentMethodId: type: string chargeStatus: type: string enum: - SUCCEEDED - PENDING - FAILED - UNKNOWN paid: type: boolean default: false chargeError: type: object properties: vendorErrorCode: type: string vendorErrorMessage: type: string ChildCheckoutRequest: type: object properties: email: type: string phone: $ref: '#/components/schemas/PhoneNumber' childSessionMode: type: string enum: - TEXT_TO_ADD - EMAIL_TO_ADD - TEXT_TO_PAY - EMAIL_TO_PAY CheckoutRequest: type: object properties: paymentType: type: string enum: - PRE_AUTH - SALE authorizeCard: type: boolean merchantTransactionId: type: string paymentDescription: type: string statementDescriptorSuffix: type: string amount: type: integer format: int64 metadata: type: object additionalProperties: type: string config: $ref: '#/components/schemas/CheckoutSessionConfig' CheckoutRequestinResponse: type: object properties: paymentType: type: string enum: - PRE_AUTH - SALE authorizeCard: type: boolean partialAuthorization: description: >- When true, card issuers will consider the payment for partial authorization. This flag shall be provided in combination with authorizeCard flag. Applicable payment method types = [CARD] type: boolean default: false agent: $ref: '#/components/schemas/Agent' merchantTransactionId: type: string paymentDescription: type: string statementDescriptorSuffix: type: string email: type: string phoneNumber: type: string amount: type: integer format: int64 metadata: type: object additionalProperties: type: string config: $ref: '#/components/schemas/CheckoutSessionConfigResponse' SessionConfig: type: object description: wallet capabilities depend on the config mode properties: modes: type: array items: enum: - PAYMENT - PAYMENT_WITH_WALLET - PAYMENT_METHOD_ENTRY - WALLET description: > *Defaults to __PAYMENT__ for guest* \ *Defaults to __PAYMENT_WITH_WALLET__ for customer* \ Currently we support only __PAYMENT_METHOD_ENTRY__ and __PAYMENT_WITH_WALLET__ in non-prod. The supported modes are explained here [Widget Capabilities](https://docs.healthsafepay.com/docs/developers/convenient-checkout-ui/widget-capabilities/) paymentMethodChannel: $ref: '#/components/schemas/PaymentMethodChannel' privacyPolicyUrl: type: string description: Privacy Policy URL senderEmailAddress: type: string description: >- used for populating email's `from` field when sending email; Validated against merchant configured SenderEmailAddresses, failing which, defaults to no-reply@ccg.optum.com PaymentMethodChannel: type: object properties: card: type: array items: enum: - TERMINAL - TEXT - EMAIL - WEBFORM bankAccount: type: array items: enum: - WEBFORM CheckoutResponse: type: object properties: url: type: string description: checkout session Url data: properties: checkoutSession: $ref: '#/components/schemas/CheckoutSession' hcpToken: type: string default: '****' BankInfoResponse: type: object properties: bankName: type: string description: Bank name who owns the routing number provided CheckoutSession: type: object properties: id: type: string format: uuid checkoutRequest: $ref: '#/components/schemas/CheckoutRequestinResponse' merchantId: type: string format: uuid checkoutSessionStatus: type: string enum: - CREATED - INITIATED - PENDING - COMPLETED - FAILED - CANCELED customerId: type: string format: uuid vendorMerchantId: type: string paymentId: type: string format: uuid paymentMethodId: type: string format: uuid childSessionId: type: string format: uuid appearance: $ref: '#/components/schemas/Appearance' paymentMethod: $ref: '#/components/schemas/PaymentMethodObjectResponse' childSession: $ref: '#/components/schemas/childSessionObjectResponse' childSessionObjectResponse: type: object properties: id: type: string format: uuid status: type: string enum: - NOTIFICATION_CREATED - NOTIFICATION_SENT - NOTIFICATION_FAILED mode: type: string enum: - TEXT_TO_ADD - EMAIL_TO_ADD - TEXT_TO_PAY - EMAIL_TO_PAY error: type: object default: null createdAt: type: string description: session start time in utc expiresAt: type: string description: session expiry time in utc notification: $ref: '#/components/schemas/NotificationResponse' NotificationResponse: type: object properties: id: type: string format: uuid channel: type: string enum: - TEXT - EMAIL destination: type: array items: enum: - '+11111111111' - test@ccg.com description: email or phoneNumber ResourcePaymentResponse: type: object properties: url: type: string data: $ref: '#/components/schemas/PaymentResponse' CustomerRequest: required: - id - idType type: object properties: idType: type: string id: type: string CustomerResponse: type: object properties: walletCustomerId: type: string format: uuid vendorName: type: string status: type: string vendorPlatformId: type: string walletVendorMerchantId: type: string vendorMerchantCustomerId: type: string SessionResponse: type: object properties: sessionId: type: string format: uuid PaymentDetail: type: object properties: merchantTransactionId: type: string amount: type: integer format: int32 paymentType: type: string enum: - SALE - PRE_AUTH default: SALE deprecated: true authorizeCard: type: boolean default: false metaData: type: object additionalProperties: type: string CustomerDetail: type: object required: - email properties: name: type: string email: type: string ssnLastFour: type: string phoneNumber: $ref: '#/components/schemas/PhoneNumber' dateOfBirth: type: string format: date example: '2000-01-30' statementDescriptorSuffix: type: string hsid: type: string metaData: type: object additionalProperties: type: string PaymentMethodSearchRequest: type: object properties: customer: $ref: '#/components/schemas/CustomerDetail' SessionRequest: type: object properties: payment: $ref: '#/components/schemas/PaymentDetail' customer: $ref: '#/components/schemas/CustomerDetail' CaptureRequest: type: object properties: amount: type: integer format: int64 metadata: type: object additionalProperties: type: string PhoneNumber: type: object properties: countryCode: type: string number: type: string paymentMethodRequest: type: object properties: type: type: string default: CARD vendorPaymentMethodId: type: string vendor: type: string enum: - STRIPE sourceProvider: $ref: '#/components/schemas/SourceProvider' savePaymentMethod: type: boolean description: >- when true(PayAndStore), the payment method will be saved upon successful completion of the payment. If set to false(OneTimePay), the payment method will not be saved. The default value is false. default: type: boolean description: >- when true, this sets the paymentMethod as the default in the wallet, unsetting any previous default. The default value is false; applicable only when savePaymentMethod is set to true. description: required, only for PayAndSave/OneTimePay securitySchemes: gateway: type: oauth2 flows: clientCredentials: scopes: https://api.uhg.com/.default: Default scope assigned to all clients financial/commerce/checkout:all: Full financial/commerce/checkout:user: User scope financial/commerce/checkout:merchant: Merchant scope tokenUrl: https://api.uhg.com/oauth2/token x-instances: - env: prod path: / probe: path: / method: GET backends: - host: api.healthsafepay.com port: 443 weight: 100 location: azure-centralus protocol: https timeouts: read: 1000 connect: 500 x-catalogEnabled: false x-serviceLevelObjectives: x-throughput: '10' x-availability: '99.99' x-responseTime: '1000' x-maxMsgsPerHour: '500' x-maxPayloadSize: '10' x-expectedMsgsPerDay: '10000'