NeroPay logoAPI
2026-04 latest v2Payment APIResourcesDocs
NeroPay API v2

Professional API reference for payments, platforms and merchant tools.

Build payments, connected accounts, money movement, NeroDisburse, Terminal, NeroCard, NeroPOS, NeroWeb, bookings, identity, compliance, proof workflows, support tickets and webhooks from one v2 API.

/v2Live base path
HMACSigned writes
ProductsPayment, POS, Web, Card, Disburse
Risk-readyKYC, compliance, proof, reserve

Quick start

Use the live v2 base URL for production. Sandbox endpoints are dry-run and do not create live payment, terminal, payout or local records.

https://eu.neropay.app/v2

Merchant mode

Use a merchant secret key to operate directly on that merchant account. Identity, compliance, proof, payments, support and resources are available for direct merchant integrations.

Platform mode

Use the platform key. Send NeroPay-Account to operate on a connected merchant. Keep your own customer-facing dashboard while NeroPay manages regulated flows.

Recommended platform flow: create connected account, create identity verification link, listen for KYC/compliance/proof webhooks, handle support tickets and only release marketplace UX once account and reserve states are safe.

NeroPay for WooCommerce

Use the WooCommerce plugin to add secure NeroPay checkout to a WordPress store without building the hosted-payment, order-status and webhook flow from scratch.

Plugin package

Download the WooCommerce ZIP package and upload it from WordPress Admin → Plugins → Add New, or upload it manually by FTP.

Key features

  • Quick setup from the WordPress plugin area.
  • Secure processing through NeroPay APIs.
  • Real-time payment status updates through webhooks.
  • Refund support from the WooCommerce workflow where enabled.

Best for

Retail stores that need a standard checkout integration, payment confirmation, order reconciliation and optional advanced API checks.

1. Install and activateUpload the NeroPay WooCommerce plugin through WordPress Admin or FTP, then activate it from Plugins.
2. Configure credentialsOpen WooCommerce → Settings → Payments → NeroPay and enter your API key, merchant details and secret key.
3. Confirm webhooksKeep the webhook/IPN URL reachable so WooCommerce can move orders from pending to paid after NeroPay confirms payment.
SettingTypeRequiredDescription
public_keystringRequiredIdentifies the merchant account.
secret_keystringRequiredServer-side key used by the plugin for secure API actions.
webhook_urlstringRequiredReceives payment success, failure or pending updates.
currencyenumRequiredStore currency such as GBP or EUR.

NeroPay for Wix

Use the Wix integration for a fast marketplace-style setup. Configure keys, redirect URLs and IPN URL, then send customers to NeroPay checkout.

Marketplace installation

Install NeroPay from the official Wix marketplace link, then configure Public Key, success URL, cancel URL and IPN URL.

1. Install from the marketplaceInstall the official NeroPay app, then connect it to your NeroPay merchant account.
2. Add API keysCopy the Public Key and Secret Key from the NeroPay dashboard. Keep secret keys out of browser code.
3. Configure URLsSet success, cancel and IPN URLs so payment status can return to the store.
4. Test in sandboxUse sandbox mode before switching to live keys and live checkout.
FieldTypeRequiredDescription
public_keystringRequiredNeroPay public key configured in the Wix app.
success_urlstringRequiredPage shown after successful payment.
cancel_urlstringRequiredPage shown when checkout is cancelled.
ipn_urlstringRequiredEndpoint that receives payment confirmation.
For custom Wix backend flows, create hosted payments server-side. Browser-only flows should never expose the secret key.

NeroPay for Odoo

Use NeroPay with Odoo eCommerce, Website and Invoicing apps. The integration uses NeroPay payment endpoints and keeps order or invoice state inside Odoo.

Odoo App Store

Install the version that matches your Odoo branch, then enable NeroPay under Invoicing → Configuration → Payment Providers.

Supported environments

  • Odoo 16
  • Odoo 17
  • Odoo 18

Prerequisites

  • Access to Invoicing → Configuration → Payment Providers.
  • Active NeroPay merchant account.
  • Public and Secret API keys.
  • HTTPS endpoint for IPN callbacks.
1. Install the moduleUpload the neropay_payment module to Odoo add-ons or install it via Apps.
2. Enable providerRestart Odoo, update the Apps list, then select or create the NeroPay payment provider.
3. Configure keysEnter public and secret keys, choose sandbox or live mode and enable the provider.
4. Reconcile with IPNUse the NeroPay callback to mark invoices/orders paid after signature verification.
FlowDescription
eCommerce checkoutCreate a hosted payment and redirect the customer to the checkout URL.
Invoice paymentUse the Odoo invoice number as identifier for reconciliation.
Sandbox testingUse sandbox endpoint and test credentials before live deployment.
TroubleshootingCheck provider visibility, IPN reachability and HMAC signature configuration.

NeroPay for Perfex CRM

Enable NeroPay as a payment gateway inside Perfex CRM so clients can pay invoices online and Perfex can update invoice status from IPN callbacks.

Perfex module package

Download the module ZIP, extract it into the Perfex modules directory, then enable NeroPAY Payment Gateway from Setup → Payments.

Features

  • Online invoice payments.
  • GBP and EUR support where enabled.
  • Instant Payment Notification updates.
  • Success and failure redirects.
  • API credentials managed inside Perfex CRM.

Prerequisites

  • Running Perfex CRM instance.
  • NeroPay merchant account with API credentials.
  • Admin access to Perfex CRM.
1. Upload moduleExtract the NeroPay payment module and upload it to the Perfex modules directory.
2. Enable gatewayGo to Setup → Payments → Payment Gateways and enable the NeroPay gateway.
3. Configure credentialsEnter public and secret API keys and define supported currencies.
4. Verify IPNPerfex should listen at {your_perfex_url}/neropay_gateway/ipn and mark invoices paid after verification.
If invoices do not update, confirm the IPN URL, secret key and server logs before retrying payment creation.

NeroPay for Zapier

Automate payment workflows between NeroPay and 5,000+ apps without code. Merchants can trigger workflows when a payment is received or create payment links from tools such as Sheets and CRMs.

No-code automation

Use Zapier to create payment links, log transactions, notify teams and sync payment events with CRMs, spreadsheets and 5,000+ apps.

1. Connect accountLog in to NeroPay, copy your Public API Key and paste it into the Zapier connection window.
2. Choose modeSelect Sandbox or Live mode depending on whether the workflow should test or process real payment links.
3. Create actionUse the Create Payment Request action to return a checkout URL instantly.
4. Automate follow-upSend payment notifications to Slack, log rows in Sheets, update CRM records or create invoices automatically.
Action fieldTypeRequiredDescription
public_keystringRequiredNeroPay Public API key.
identifierstringRequiredUnique ID for the payment.
currencyenumRequiredCurrency code such as GBP, EUR or IDR.
amountdecimalRequiredPayment amount.
detailsstringRequiredDescription or order details.
ipn_urlstringRequiredInstant payment notification URL.
customer_phonestringOptionalCustomer phone number.
customer_addressstringOptionalBilling address.

Authentication

API v2 uses bearer authentication. Unsafe methods also require a timestamped HMAC signature and an idempotency key.

HeaderTypeRequiredDescription
AuthorizationstringRequiredBearer {secret_key}.
AcceptstringRequiredAlways application/json.
Content-TypestringRequiredUse application/json for JSON writes or multipart/form-data for file upload endpoints.
X-NeroPay-Timestampunix timestampRequiredRequired for POST/PATCH/PUT/DELETE.
X-NeroPay-SignaturestringRequiredHMAC SHA-256 of timestamp.raw_body using the secret key.
Idempotency-KeystringRequiredRequired for writes that create or mutate state.
Never expose secret keys in browser code. Use server-side calls for signed writes.

Headers

Headers control JSON responses, connected account scoping, public/client key context and retry safety.

HeaderTypeRequiredDescription
NeroPay-AccountstringOptionalConnected account ID such as NPEE4E742AB2_6165. Platforms use it to act on a connected merchant.
X-NeroPay-Client-KeystringOptionalDashboard-visible client key. Format: unique_account_id + underscore + merchant_id.
X-NeroPay-Public-KeystringOptionalPublic key from API credentials.
Idempotency-KeystringRequiredUnique per business operation. Reuse only for exact retries.

Connected account scoping works with payments, balances, identity, compliance, proof, support and resource APIs where enabled.

Pagination

List endpoints use page-based pagination when the underlying controller returns a collection.

QueryTypeDefaultDescription
pageinteger1Page number.
per_pageinteger25Number of records per page.
q/searchstringSearch by supported columns.
statusenumFilter by status where supported.
from / todate/datetimeFilter by created date where supported.
sortstring-idUse leading minus for descending order where supported.

Pagination appears inside meta.pagination. Some single-object APIs return only data.

Errors

Errors return a consistent JSON object with an application code and human-readable message.

HTTPCodeMeaning
400bad_requestMalformed request.
401unauthenticatedMissing or invalid API key.
403forbiddenThe authenticated account cannot access the resource.
404endpoint_not_found / not_foundRoute or object was not found.
405resource_read_onlyResource exists but the requested write method is not enabled.
409idempotency_conflictThe same idempotency key was reused with a different body.
422validation_errorInvalid fields.
429rate_limitedToo many requests.

Idempotency

Use an idempotency key for each write operation that creates or changes financial state.

Good

order_1001_payment_attempt_1 reused only when retrying the same body.

Avoid

Do not reuse one key for different payments, payouts, refunds or proof submissions.

Account API

Retrieve the authenticated merchant account and core onboarding state.

GET/account

Returns the authenticated merchant or the connected merchant when NeroPay-Account is supplied.

GET/connected-accounts

Lists connected merchants for a NeroConnect platform.

POST/connected-accounts

Creates a connected merchant.

GET/connected-accounts/{account_id}

Retrieves one connected merchant.

PATCH/connected-accounts/{account_id}

Updates connected account fields and can trigger account.update webhooks.

AttributeTypeRequiredDescription
account_idstringRead-onlyPublic API account ID.
business_company_namestringOptionalCompany or trading name.
emailstringRequiredPrimary merchant email.
statusenumRead-onlyactive, pending, banned or review state.
kyc_statusenumRead-onlypending, verified or rejected.
neroconnect_email_sms_handleenumOptionalneropay or platform. Controls merchant-facing notification delegation.
Create connected account is the beginning, not the end of onboarding. Developers should also create identity verification links, handle compliance document requests and subscribe to KYC/compliance webhooks.

NeroConnect connected accounts

Platforms can create merchants, view balances, manage default platform fees and operate by sending the connected account header.

ConceptTypeDescription
Connected account IDstringFormat is unique_account_id + underscore + merchant_id.
NeroPay-Account headerstringScopes API calls to a connected merchant.
Notification handlingenumneropay means NeroPay sends email/SMS; platform means platform handles merchant-facing notifications from webhooks.
KYC/complianceworkflowMust be completed after create account. Use Identity and Compliance APIs plus webhooks.
Connected accounts should not be treated as fully ready until KYC, payout bank setup, compliance requests and reserve/proof checks are clear.

Payment API

Create hosted checkouts, API payment intents and terminal payments. Payment API is separate from resources and appears in the main menu.

POST/hosted-payments

Creates a hosted checkout URL.

POST/payments

Creates an API payment intent / pending payment.

POST/payment-intents

Explicit payment intent endpoint.

POST/terminal/payments

Sends a payment action to a terminal reader.

FieldTypeRequiredDescription
amountdecimalRequiredPayment amount in major units, e.g. 15.99.
currencyenumRequiredCurrency such as GBP.
referencestringOptionalYour order/payment reference.
description/detailstextOptionalCustomer-facing or internal description.
connect_application_feedecimalOptionalPlatform fee charged for a connected account payment. Strongly recommended for platform monetisation.
metadataobjectOptionalAdditional key/value data returned in responses and webhooks where supported.
connect_application_fee is important: send it per payment when your platform takes a fee. If the request omits it, the default connect application fee configured in the dashboard can be used. If a request sends a fee, the default is not charged again.
No raw card data: API v2 does not accept keyed card payments. If an order must be allocated across more than one merchant, create separate payment intents and link them with your own reference or metadata.order_id.

Transactions

List, retrieve, refund and cancel transactions. High-risk transactions can expose proof and reserve state, so check transaction state before treating funds as fully available.

POST/transactions

Legacy alias for creating hosted/API transaction where enabled.

GET/transactions

Lists transactions.

GET/transactions/{id}

Retrieves one transaction.

POST/transactions/{id}/refund

Refunds a transaction.

POST/transactions/{id}/cancel

Cancels a pending transaction.

FieldTypeDescription
idintegerInternal transaction ID.
account_idstringMerchant or connected account ID.
referencestringNeroPay or merchant reference.
np_main_trxstringProcessor/payment identifier where available.
statusenumpending, succeeded, failed, cancelled, refunded.
is_reservebooleanWhether funds are currently held in reserve.
reserve_amountdecimalAmount held from available balance.
proof_statusenumrequested, submitted, approved, rejected or null.
A succeeded transaction can still have reserve/proof state. Do not show funds as fully available until reserve_amount is zero and proof status is clear.

Transaction Proof API

Submit proof files and buyer/shipping details when a transaction is flagged by high-value or risk logic. This API is available for merchants and connected accounts.

GET/transactions/{id}/proof

Returns proof request and transaction reserve state.

POST/transactions/{id}/proof

Submits proof details and invoice/shipping file.

FieldTypeRequiredDescription
invoice_filefileOptionalJPG, PNG, PDF or WEBP. Required when staff/platform requested an invoice file.
courier_companystringOptionalShipping courier.
tracking_numberstringOptionalTracking number.
buyer_firstnamestringOptionalBuyer first name.
buyer_lastnamestringOptionalBuyer last name.
buyer_phonestringOptionalBuyer phone number.
buyer_emailstringOptionalBuyer email.
merchant_notestextOptionalMerchant notes for the review team.
Submitting proof publishes transaction.proof_submitted. Staff approval/rejection publishes transaction.proof_approved or transaction.proof_rejected. Approved reserve releases can publish balance.reserve_released.

Balances

Read available, pending, instant, standard and reserve balances. Reserve balance is important for high-risk and proof-held funds.

GET/balances

Returns wallet balances.

GET/balance

Alias of /balances.

FieldTypeDescription
available_balancedecimalFunds available for use.
instant_availabledecimalInstant payout availability.
standard_availabledecimalStandard payout availability.
reserve_balancedecimalFunds held in reserve due to proof/risk/compliance.
currencyenumWallet currency.

Wallet Transactions

Audit wallet movement separately from payment transactions. Use this for balance ledger reconciliation.

GET/wallet-transactions

Lists wallet balance transactions.

GET/wallet-transactions/{id}

Retrieves one wallet ledger row.

FieldTypeDescription
txn_idstringLedger transaction ID.
typeenumcredit/debit/hold/release depending on implementation.
amountdecimalAmount moved.
balance_beforedecimalBalance before movement where available.
balance_afterdecimalBalance after movement where available.
notestextInternal or merchant-facing notes.

Payouts & Schedule

Create and inspect payout requests and manage payout schedule. Payout creation can trigger proof/risk checks and Perfex review tasks.

GET/payouts

Lists payouts.

POST/payouts

Creates a payout request.

POST/payouts/request

Legacy alias for create payout.

GET/payouts/{id}

Retrieves one payout.

GET/payout-schedule

Gets payout schedule.

PATCH/payout-schedule

Updates payout schedule.

GET/transfer-schedule

Legacy alias of payout schedule.

PATCH/transfer-schedule

Legacy alias of update payout schedule.

FieldTypeRequiredDescription
amountdecimalRequiredPayout amount.
currencyenumRequiredCurrency.
transfer_speedenumOptionalinstant or standard.
bank_account_idstringOptionalDestination bank reference.
referencestringOptionalStatement or internal reference.
Transfers and payouts should not bypass risk controls. High-risk payout requests can create proof requirements, risk flags, tasks and webhooks.

Disputes

Disputes belong under Money Movement because they affect payment risk, settlement and operational review.

GET/disputes

Lists disputes.

GET/disputes/{id}

Retrieves one dispute.

FieldTypeDescription
trx_numberstringRelated transaction reference.
payment_numberstringPayment identifier.
dispute_reasonstringReason code or description.
dispute_statusenumopen, won, lost, under_review etc.
customer_emailstringCustomer email when available.

Disputes are read-only in API v2. Use dashboards or operational flows for evidence submission if enabled.

Loans

Loans and financing records are grouped under Money Movement and are read-only through API v2.

GET/loans

Lists loan/financing records.

GET/loans/{id}

Retrieves one loan record.

FieldTypeDescription
offer_idstringFinancing offer identifier.
statusenumoffer, active, paid, declined etc.
campaign_typestringCampaign/category.
financing_typestringFinancing type.
created_atdatetimeRecord creation time.

NeroDisburse Bank Accounts

Bank accounts are documented under NeroDisburse. API responses never expose full account numbers, sort codes, IBANs or routing numbers.

GET/bank-accounts

Lists safe payout bank references.

POST/bank-accounts

Adds a payout bank account through the NeroDisburse bridge.

GET/nerodisburse/bank-accounts

Lists NeroDisburse bank accounts.

POST/nerodisburse/bank-accounts

Creates a NeroDisburse bank account.

FieldTypeRequiredDescription
account_namestringRequiredDisplay name for the destination.
bank_namestringOptionalBank name.
sort_codestringOptionalGB sort code for GB bank accounts.
account_numberstringOptionalGB account number for GB bank accounts.
ibanstringOptionalIBAN for supported international accounts.
currencyenumRequiredCurrency.
use_forenumOptionalsupplier, payout, merchant etc.
is_defaultbooleanOptionalSet as default destination.

NeroDisburse Payouts

Create supplier or connected disbursement payouts using saved bank accounts.

GET/nerodisburse/payouts

Lists NeroDisburse payouts.

POST/nerodisburse/payouts

Creates pending NeroDisburse payout.

GET/nerodisburse/payouts/{id}

Retrieves one NeroDisburse payout.

FieldTypeRequiredDescription
amountdecimalRequiredAmount.
currencyenumRequiredCurrency.
transfer_speedenumOptionalinstant or standard.
bank_account_idstringRequiredSaved bank account reference.
referencestringOptionalPayout reference.
notetextOptionalSupplier payout note.

NeroDisburse Payments

Create disbursement payment records where enabled by the NeroDisburse controller.

POST/nerodisburse/payments

Creates a NeroDisburse payment/disbursement request.

Use this endpoint where your integration needs NeroDisburse payment creation rather than a standard payout request. Risk and payout availability rules still apply.

Terminal Payments

Send in-person payment actions to a registered terminal reader.

POST/terminal/payments

Creates and sends a terminal payment action.

POST/terminal/readers/{reader_id}/cancel-action

Cancels the current reader action.

FieldTypeRequiredDescription
amountdecimalRequiredAmount.
currencyenumRequiredCurrency.
reader_idstringRequiredTerminal reader ID.
location_idstringRequiredTerminal location ID.
descriptiontextOptionalPayment description.
referencestringOptionalReference shown in transaction history.

Terminal Locations

Create, list and manage terminal locations. Location creation uses the terminal bridge route.

GET/locations

Lists terminal/NeroPOS locations.

POST/locations

Legacy alias to create terminal location.

GET/terminal/locations

Lists terminal locations.

POST/terminal/locations

Creates a terminal location.

GET/locations/{id}

Retrieves one location.

PATCH/locations/{id}

Updates a location.

DELETE/locations/{id}

Deletes where enabled.

FieldTypeRequiredDescription
display_namestringRequiredLocation display name.
line1stringRequiredAddress line 1.
citystringRequiredCity.
postal_codestringRequiredPostal code.
countryenumRequiredISO country code.
is_defaultbooleanOptionalSet default location.
tipping_enabledbooleanOptionalEnable tipping for terminal/POS flows.

Terminal Readers

Register, list and remove terminal readers.

GET/readers

Lists readers.

POST/readers

Legacy alias to register reader.

GET/terminal/readers

Lists terminal readers.

POST/terminal/readers

Registers a reader.

DELETE/terminal/readers/{id}

Deletes/unlinks a reader.

FieldTypeRequiredDescription
labelstringRequiredReader label.
location_idstringRequiredLocation ID.
registration_codestringRequiredPairing/registration code from device.
reader_serial_numberstringRead-onlyDevice serial where available.
reader_statusenumRead-onlyonline/offline/unknown.

Devices

Read-only terminal/device records for fleet visibility.

GET/devices

Lists device rows.

GET/devices/{id}

Retrieves one device.

FieldTypeDescription
device_idstringInternal device ID.
reader_idstringLinked reader ID.
reader_serialstringSerial number.
reader_labelstringDisplay label.
statusenumDevice status.

NeroCard Cards

NeroCard card records are read-only in API v2 and are separate from payment cards.

GET/nerocards

Lists NeroCard cards.

GET/nerocards/{id}

Retrieves one NeroCard card.

FieldTypeDescription
cardholder_namestringCardholder name.
brandstringCard brand.
last4stringLast four digits.
statusenumactive, inactive, cancelled, blocked etc.
card_pinhiddenNever returned.

NeroCard Cardholders

Read NeroCard cardholder records.

GET/nerocardholders

Lists cardholders.

GET/nerocardholders/{id}

Retrieves one cardholder.

FieldTypeDescription
namestringCardholder name.
emailstringEmail.
phonestringPhone.
stripe_cardholder_idstringExternal cardholder identifier when present.
created_atdatetimeCreation time.

NeroCard Transactions

Read NeroCard issuing transactions separately from wallet and payment transactions.

GET/nerocard-transactions

Lists issuing/NeroCard transactions.

GET/nerocard-transactions/{id}

Retrieves one NeroCard transaction.

FieldTypeDescription
stripe_issuing_transaction_idstringExternal issuing transaction ID.
merchant_namestringMerchant name on the card transaction.
amountdecimalTransaction amount.
merchant_amountdecimalOriginal merchant amount where different.
platform_fee_amountdecimalPlatform fee amount if applied.
net_amountdecimalNet ledger amount.
statusenumpending, posted, reversed etc.
typeenumpurchase, refund, adjustment etc.

Customers

Create and manage NeroPOS/NeroPay customer records.

GET/customers

Lists customers.

POST/customers

Creates a customer.

GET/customers/{id}

Retrieves one customer.

PATCH/customers/{id}

Updates a customer.

FieldTypeRequiredDescription
namestringRequiredCustomer name.
emailstringOptionalEmail.
phonestringOptionalPhone.
postcodestringOptionalPostcode.
address1/address2stringOptionalAddress lines.
citystringOptionalCity.
instructionstextOptionalDelivery or customer notes.

Categories & Products

Keep product catalogue data in sync for NeroPOS and NeroWeb menus.

GET/categories

Lists categories.

POST/categories

Creates category.

PATCH/categories/{id}

Updates category.

DELETE/categories/{id}

Deletes category where enabled.

GET/products

Lists products.

POST/products

Creates product.

PATCH/products/{id}

Updates product.

DELETE/products/{id}

Deletes product where enabled.

Product fieldTypeRequiredDescription
category_idintegerOptionalCategory ID.
namestringRequiredProduct name.
skustringOptionalSKU.
pricedecimalRequiredProduct price.
vat_ratedecimalOptionalVAT rate.
image_urlstringOptionalImage URL.
stock_qtyintegerOptionalStock quantity.
descriptiontextOptionalProduct description.

Product Options & Rules

Manage product-specific options and global option groups for POS and online ordering.

GET/product-option-groups

Lists product option groups.

POST/product-option-groups

Creates product option group.

GET/product-options

Lists product options.

POST/product-options

Creates product option.

GET/global-option-groups

Lists global option groups.

POST/global-option-groups

Creates global option group.

GET/global-option-items

Lists global option items.

POST/global-option-items

Creates global option item.

GET/global-option-assignments

Lists assignments.

POST/global-option-assignments

Creates assignment.

GET/product-option-rules

Alias for assignments/rules.

FieldTypeDescription
namestringOption or group name.
requiredbooleanRequire selection.
min_select / max_selectintegerSelection limits.
price_deltadecimalPrice change for selected item.
rules_jsonobjectRule configuration.
scope / scope_idenum/integerWhere a global option applies.

Tables & Areas

Manage table maps, areas and table status for dine-in flows.

GET/table-areas

Lists table areas.

POST/table-areas

Creates table area.

GET/tables

Lists tables.

POST/tables

Creates table.

PATCH/tables/{id}

Updates table.

DELETE/tables/{id}

Deletes table where enabled.

FieldTypeDescription
area_idintegerArea ID.
name / labelstringDisplay name.
seatsintegerSeat count.
statusenumavailable, occupied, reserved etc.
x,y,w,h,rotationdecimal/integerTable-map coordinates.

Cashiers, Registers & Staff

Manage POS cashiers, registers, POS staff and team members.

GET/cashiers

Lists cashiers.

POST/cashiers

Creates cashier.

GET/registers

Lists registers.

POST/registers

Creates register.

GET/pos-staffs

Lists POS staff.

POST/pos-staffs

Creates POS staff.

GET/team-members

Lists merchant team members.

POST/team-members

Creates team member.

FieldTypeDescription
namestringStaff/cashier name.
email / usernamestringLogin identifier.
password / new_passwordstringAccepted on create/update but never returned.
roleenumRole/register type.
permissionsobject/arrayPermission payload.
location_ids / till_idsarrayAllowed locations or tills.

Invoices

Create and manage merchant invoices and invoice line items.

GET/invoices

Lists invoices.

POST/invoices

Creates invoice.

GET/invoices/{id}

Retrieves invoice.

PATCH/invoices/{id}

Updates invoice.

GET/invoice-items

Lists invoice items.

POST/invoice-items

Creates invoice item.

FieldTypeDescription
invoice_numberstringInvoice number.
invoice_tostringRecipient name.
invoice_emailstringRecipient email.
currency_idintegerCurrency ID.
sub_total / total_amountdecimalAmounts.
items_jsonobject/arrayLine items payload.
due_datedateDue date.
statusenumdraft, sent, paid etc.

NeroPOS Orders

NeroPOS order APIs are separate from NeroWeb orders and generic store orders.

GET/neropos-orders

Lists NeroPOS orders.

POST/neropos-orders

Creates NeroPOS order.

GET/neropos-orders/{id}

Retrieves order.

PATCH/neropos-orders/{id}

Updates order.

GET/neropos-order-items

Lists order items.

POST/neropos-order-items

Creates order item.

GET/orders

Generic orders resource.

GET/store-orders

Read-only NeroPay Store orders.

FieldTypeDescription
order_number / order_refstringOrder reference.
statusenumOrder status.
fulfilment_typeenumdine_in, takeaway, delivery etc.
payment_method / payment_statusenumPayment fields.
customer_*stringCustomer details.
subtotal, total, tip_feedecimalMoney fields.
location_id / table_id / staff_idintegerOperational links.
meta_jsonobjectExtra order metadata.

NeroPOS Payment Settings

Manage POS payment, tax, service fee, cashiers, tables and receipt defaults.

GET/payment-settings

Lists POS payment settings.

POST/payment-settings

Creates settings where no row exists.

GET/payment-settings/{id}

Retrieves settings.

PATCH/payment-settings/{id}

Updates settings.

FieldTypeDescription
default_tax_feedecimalDefault tax fee.
default_service_feedecimalDefault service fee.
default_tip_feedecimalDefault tip fee.
pos_mode / default_channelenumPOS operating mode.
enable_tables / enable_cashiersbooleanFeature toggles.
receipt_footer / receipt_logo_urltext/stringReceipt branding. Use receipt_logo_url for the logo image URL.
min_card_chargedecimalMinimum card charge.

NeroWeb Settings

Configure online ordering storefront settings separately from POS resources.

GET/neroweb-settings

Lists NeroWeb settings.

POST/neroweb-settings

Creates settings.

GET/neroweb-settings/{id}

Retrieves settings.

PATCH/neroweb-settings/{id}

Updates settings.

FieldTypeDescription
store_namestringOnline store name.
slugstringStore slug.
is_activebooleanEnable store.
disable_delivery / disable_collectbooleanFulfilment toggles.
enable_card / enable_cashbooleanPayment toggles.
working_hours_jsonobjectWorking hours.
delivery_bands_jsonobjectDelivery pricing/areas.
theme_jsonobjectBrand/theme settings, including logo_url.

NeroWeb Pages

Manage public pages used by the NeroWeb storefront builder.

GET/neroweb-pages

Lists pages.

POST/neroweb-pages

Creates page.

GET/neroweb-pages/{id}

Retrieves page.

PATCH/neroweb-pages/{id}

Updates page.

GET/nerowebpages

Legacy alias for pages.

FieldTypeDescription
titlestringPage title.
slugstringURL slug.
page_typeenumhome, content, legal etc.
is_home / is_published / show_in_navbooleanPage flags.
nav_label / nav_orderstring/integerNavigation settings.
html_content / content / css_contenttextPage content.
builder_jsonobjectBuilder state.
meta_title / meta_descriptionstring/textSEO metadata.

NeroWeb Orders

NeroWeb orders are separate from NeroPOS orders and store orders.

GET/neroweb-orders

Lists NeroWeb orders.

POST/neroweb-orders

Creates NeroWeb order.

GET/neroweb-orders/{id}

Retrieves order.

PATCH/neroweb-orders/{id}

Updates order.

GET/neroweb-order-items

Lists order items.

POST/neroweb-order-items

Creates order item.

FieldTypeDescription
order_refstringOrder reference.
statusenumOrder status.
fulfilment_typeenumdelivery, collect etc.
payment_method / payment_statusenumPayment fields.
subtotal_pence / total_penceinteger/decimalMoney fields.
customer_name / email / phonestringCustomer fields.
meta_jsonobjectExtra metadata.

Booking Settings

Booking settings are separate from booking transactions and should appear under the Booking menu.

GET/booking-settings

Lists booking settings.

POST/booking-settings

Creates booking settings.

GET/booking-settings/{id}

Retrieves booking settings.

PATCH/booking-settings/{id}

Updates booking settings.

FieldTypeDescription
booking_company_namestringBooking brand/company name.
booking_typeenumBooking mode/type.
weekly_hoursobjectWeekly opening hours.
auto_approve_bookingbooleanAuto approve bookings.
slot_durationintegerMinutes per slot.
max_bookings_per_slot / max_guestsintegerCapacity.
servicesobject/arrayBookable services.
holiday_daysarrayClosed dates.
staff_enabled / staffboolean/objectStaff booking assignment.

Bookings

Create and manage booking transactions.

GET/bookings

Lists bookings.

POST/bookings

Creates booking.

GET/bookings/{id}

Retrieves booking.

PATCH/bookings/{id}

Updates booking.

FieldTypeRequiredDescription
booking_datedateRequiredBooking date.
booking_timetimeRequiredBooking time.
guest_countintegerOptionalGuests.
servicestringOptionalService name.
amountdecimalOptionalBooking amount.
staff_id / staff_nameinteger/stringOptionalStaff assignment.
location_idintegerOptionalLocation.
customer_name / phone / emailstringRequiredCustomer details.
customer_notetextOptionalCustomer note.
statusenumOptionalpending, confirmed, cancelled etc.

KYC / Identity API

Identity API is not only for NeroConnect. Direct merchants can also use it to create verification links and read verification sessions.

POST/identity/verification-links

Creates a document verification link.

GET/identity/verification-sessions

Lists verification sessions.

GET/identity/verification-sessions/{id}

Retrieves one verification session.

FieldTypeRequiredDescription
typeenumOptionaldocument or supported verification type.
return_urlstringOptionalWhere the user should return after verification.
first_name / last_namestringOptionalPrefill name if known.
countryenumOptionalISO country code.
metadataobjectOptionalDeveloper metadata.
NeroPay should not expose the underlying verification provider in your customer-facing copy. Use the returned short_url or verification_url in your own dashboard.

Compliance API

Compliance APIs let merchants or platforms read requested documents and submit evidence back to NeroPay.

GET/compliance/requests

Lists compliance document requests.

GET/compliance/requests/{id}

Retrieves one compliance request.

POST/compliance/requests/{id}/documents

Uploads requested compliance documents.

FieldTypeRequiredDescription
document_filefileRequiredRequested file.
document_typestringOptionalType requested by staff/compliance.
notestextOptionalMerchant or platform notes.
metadataobjectOptionalOptional developer metadata.
Compliance is not NeroConnect-only. If a direct merchant uses API v2, the same endpoints can be used for document request fulfilment. Webhooks notify document requested/submitted/approved/rejected.

Support Tickets

White-label support APIs allow a platform to create tickets for NeroPay staff while keeping the platform as the customer-facing brand.

GET/support/tickets

Lists tickets.

POST/support/tickets

Creates ticket.

GET/support/tickets/{id}

Retrieves ticket.

POST/support/tickets/{id}/messages

Adds ticket message.

FieldTypeRequiredDescription
subjectstringRequiredTicket subject.
messagetextRequiredInitial message.
priorityenumOptionallow, normal, high, urgent.
categorystringOptionalSupport category.
attachments[]fileOptionalOptional files where supported.
When NeroPay answers a ticket, your platform can receive support.ticket_updated and support.message_created webhooks and display the answer in your own UI.

Webhooks

Use webhooks for account updates, KYC, compliance, proof, reserve release and support events.

GET/webhooks

Lists configured endpoints.

GET/webhook-deliveries

Lists delivery attempts.

transaction.proof_requestedtransaction.proof_submittedtransaction.proof_approvedtransaction.proof_rejectedpayout.proof_requestedtransfer.proof_requestedbalance.reserve_releasedcompliance.document_requestedcompliance.document_submittedcompliance.document_approvedcompliance.document_rejectedkyc.pendingkyc.verifiedkyc.rejectedaccount.updateaccount.updatedconnected_account.createdconnected_account.updatedsupport.ticket_createdsupport.ticket_updatedsupport.message_created
FieldTypeDescription
idstringWebhook event ID.
typeenumEvent type.
created_atdatetimeEvent creation time.
accountobjectMerchant or connected account payload.
dataobjectEvent-specific payload.
signaturestringUse your endpoint signing secret where configured.
If the platform handles email/SMS, NeroPay skips delegated merchant-facing messages and publishes webhooks so the platform can send branded communication.

Sandbox

Sandbox write endpoints under /sandbox return realistic JSON and do not create live payment, terminal, payout or local records.

POST/sandbox/hosted-payments

Dry-run hosted payment.

POST/sandbox/payment-intents

Dry-run payment intent.

POST/sandbox/terminal/payments

Dry-run terminal payment.

POST/sandbox/payment-links

Dry-run payment link.

POST/sandbox/terminal/locations

Dry-run terminal location.

POST/sandbox/terminal/readers

Dry-run reader registration.

POST/sandbox/bank-accounts

Dry-run bank account.

POST/sandbox/payouts

Dry-run payout.

PATCH/sandbox/payout-schedule

Dry-run schedule update.

POST/sandbox/resources/{resource}

Dry-run resource create.

Sandbox is designed for API clients and Postman tests. Use live endpoints only when you want real records/actions.

Resource Reference

API v2 exposes explicit controller endpoints plus direct resource aliases. Resources are grouped by product area in this documentation; they are not all hidden under NeroPOS.

Core

accountconnected-accountsbalancesbalanceapi-logs

Payments

hosted-paymentspaymentspayment-intentspayment-linkstransactionstransaction proof

Money Movement

wallet-transactionspayoutspayout-scheduletransfer-scheduledisputesloans

NeroDisburse

bank-accountsnerodisburse/bank-accountsnerodisburse/payoutsnerodisburse/paymentsnerodisburse-bank-accountsnerodisburse-payoutsnerodisburse-payments

Terminal

terminal/paymentslocationsterminal/locationsreadersterminal/readersdevices

NeroCard

nerocardsnerocardholdersnerocard-transactions

NeroPOS

customerscategoriesproductsproduct-option-groupsproduct-optionsglobal-option-groupsglobal-option-itemsglobal-option-assignmentsproduct-option-rulescashiersregisterspos-staffsteam-memberstablestable-areasinvoicesinvoice-itemsordersneropos-ordersneropos-order-itemspayment-settings

NeroWeb

neroweb-settingsneroweb-pagesnerowebpagesneroweb-ordersneroweb-order-itemsstore-orders

Bookings

booking-settingsbookings

Risk & Ops

identity/verification-linksidentity/verification-sessionscompliance/requestssupport/ticketswebhookswebhook-deliveries
Direct aliases such as /v2/disputes, /v2/bank-accounts, /v2/neroweb-orders, /v2/nerocard-transactions and /v2/bookings should not return route-not-found when the v2 route patch is deployed and route cache is cleared.