Suty
Tap Pay

Installation

Installation

1. Drop the resource

Extract suty-billing into resources/[suty]/suty-billing.

2. Ensure dependencies and the resource

server.cfg:

ensure ox_lib
ensure ox_inventory
ensure lb-phone
ensure qbx_core          # or qb-core, or es_extended
ensure suty-billing

lb-phone MUST start before suty-billing — the Tap Pay app registers during the latter's boot and won't show up if lb-phone isn't loaded yet.

3. Register the item in ox_inventory

Add this entry to ox_inventory/data/items.lua (also in install/items.lua):

['payment_tablet'] = {
    label = 'Datafono',
    weight = 500,
    stack = false,
    close = true,
    description = 'Terminal de pago contactless para cobrar a clientes',
    client = {
        export = 'suty-billing.useTablet',
    },
},

Rename the item key (payment_tablet) freely — the resource never reads the name. The only thing it needs is client.export = 'suty-billing.useTablet', which must stay as written.

Restart ox_inventory after saving.

4. Give yourself a test item

giveitem 1 payment_tablet 1

5. Verify

As a merchant (player with an allowed job):

  1. Use the payment_tablet item → tablet appears in your hand with a hold pose, on-screen terminal NUI activates.
  2. Leave it active.

As a customer (on a separate test account or alt):

  1. Walk within 2 m of the merchant.
  2. Open your phone → open the Tap Pay app.
  3. Type an amount → tap Pay.
  4. App finds the nearby active terminal, server validates funds and transfers — bank → bank.
  5. The merchant sees a "payment received" notification + the terminal UI updates.

The customer drives the payment from their own phone. The merchant doesn't enter the customer's ID — proximity is what links them.

6. (Optional) Restrict who can use it

Open config.lua. By default every job registered in your framework can use the tablet except those in Config.ExcludeJobs. To use an explicit whitelist instead, see Configuration → AllowedJobs.

7. Tebex Escrow

Customers buying this through Tebex retain edit access to config.lua, INSTALLATION.md, and install/items.lua (already in escrow_ignore). They can rename the item, change job permissions, swap framework, and tune limits without source access.