Last updated

Non-PSP Adapter

Overview Document: Payment Adapters Overview

Overview and Unique Capabilities

The Non-PSP Adapter enables immediate order completion for payment methods managed internally by the merchant, bypassing external payment service providers. This page focuses on the unique technical details and configuration for the Non-PSP Adapter.

Use Cases

  • Contract Customers / B2B Commerce with established credit terms
  • Aggregate Invoice (consolidated billing)
  • Account Credit (pre-loaded balances)
  • In-Store Payment (pay at pickup)
  • Internal Testing

Limitations

  • Payment capture, refund, and cancel operations are not applicable - merchant manages payment externally.
  • Recurring payments are not supported.

Configuration in Norce Admin

The adapter is configured with merchant-defined payment methods:

FieldDescriptionExample Value
activeWhether the adapter is enabled.true
idUnique identifier for this configuration.nonpsp-config
methodsArray of available payment methods.See below

Payment Methods Configuration

FieldDescription
identifierUnique identifier for the payment method
preSelectedWhen true, this method is pre-selected

Example Configuration

{ "$schema": "...", "active": true, "id": "nonpsp-config", "adapter": { "internalUrl": "https://checkout-nonpsp-adapter.prod.norce.tech" }, "redirectUrls": { "checkoutPage": "https://your-store.com/checkout", "confirmationPage": "https://your-store.com/order-confirmation" }, "methods": [ { "identifier": "invoice", "preSelected": true }, { "identifier": "account-credit", "preSelected": false } ] }

Non-PSP API Environments

EnvironmentAddress
Productionhttps://checkout-nonpsp-adapter.prod.norce.tech
Testhttps://checkout-nonpsp-adapter.test.norce.tech

Creating a Payment

POST /api/checkout/v1/orders/{order_id}/payments x-merchant: {merchant} x-channel: {channel} Authorization: Bearer {token}

Response:

{ "paymentId": "pXYZ123", "paymentMethods": [ { "identifier": "invoice" }, { "identifier": "account-credit" } ], "selectedPaymentMethod": "invoice" }

Getting a Payment

Retrieves the current state of a Non-PSP payment.

GET /api/checkout/v1/orders/{order_id}/payments/{payment_id} x-merchant: {merchant} x-channel: {channel} Authorization: Bearer {token}

Selecting a Payment Method

PUT /api/checkout/v1/orders/{order_id}/payments/{payment_id} x-merchant: {merchant} x-channel: {channel} Authorization: Bearer {token} Content-Type: application/json

{ "selectedPaymentMethod": "account-credit" }

Removing a Payment

Removes the Non-PSP payment from the order.

POST /api/checkout/v1/orders/{order_id}/payments/{payment_id}/remove x-merchant: {merchant} x-channel: {channel} Authorization: Bearer {token}

Validation

When checkout is completed, the adapter validates:

  • Payment amount matches order total
  • Customer billing information is provided (email required)

Order Completion

Upon successful validation:

  1. Order state is updated to "Completed"
  2. Payment state is set to "Pending"
  3. Order is ready for fulfillment

The merchant is responsible for collecting payment through internal processes.

Integration Considerations

  • Customer Eligibility: Implement logic to determine which customers see Non-PSP options
  • Payment Reconciliation: Track payments collected outside Norce Checkout
  • Credit Management: Implement credit limit checks for invoice/credit terms
  • Reporting: Account for orders without PSP transaction data