Howler Top Up Cashless Tag API
The Top Up Cashless Tag API from Howler — 7 operation(s) for top up cashless tag.
The Top Up Cashless Tag API from Howler — 7 operation(s) for top up cashless tag.
openapi: 3.1.0
info:
title: Howler API v3 Artists Top Up Cashless Tag API
version: 3.6.1
description: '*Last updated: 2026-01-20 21:15:49 +0200*
'
servers:
- url: https://{defaultHost}/api/v3/consumer_portal
variables:
defaultHost:
default: www.howler.co.za
description: Server for consumer portal endpoints
security:
- bearer_header: []
bearer_param: []
api_key: []
bearer_auth: []
tags:
- name: Top Up Cashless Tag
paths:
/cashless_tags/{cashless_tag_uid}/top_up:
parameters:
- name: cashless_tag_uid
in: path
description: cashless_tag_uid
required: true
schema:
type: string
post:
summary: select cashless tag (1)
operationId: updateConsumerCashlessTagTopup
tags:
- Top Up Cashless Tag
description: 'Start the top up process of a cashless tag by providing the cashless tag''s uid.
The next_step field in the body will indicate which action should be performed next.
'
responses:
'200':
description: successful
content:
application/json:
examples:
Cashless Tag:
value:
top_up_order:
id: 4
reference: '123'
status: pending
type: TopUpOrder
user: {}
next_step: /api/v3/consumer_portal/cashless_tags/1234EEEEE/top_up/4/amounts
schema:
type: object
properties:
top_up_order:
$ref: '#/components/schemas/Order'
next_step:
type: string
required:
- top_up_order
- next_step
'404':
description: cashless tag not found
/cashless_tags/{cashless_tag_uid}/top_up/{top_up_order_id}/amounts:
parameters:
- name: cashless_tag_uid
in: path
description: cashless_tag_uid
required: true
schema:
type: string
- name: top_up_order_id
in: path
description: top_up_order_id
required: true
schema:
type: integer
put:
summary: accept amounts (2)
operationId: updateConsumerCashlessTagAmounts
tags:
- Top Up Cashless Tag
description: 'Specify the amount to top up the cashless tag with.
'
parameters: []
responses:
'200':
description: successful
content:
application/json:
schema:
type: object
properties:
top_up_order:
$ref: '#/components/schemas/Order'
next_step:
type: string
required:
- top_up_order
- next_step
'404':
description: uid not found
'400':
description: top up order invalid status
requestBody:
content:
application/json:
schema:
type: object
properties:
cashless_top_up:
type: object
properties:
amount:
type: number
required:
- amount
required:
- cashless_top_up
examples:
top_up:
summary: Top Up
value:
cashless_top_up:
amount: 5.25
required: true
/cashless_tags/{cashless_tag_uid}/top_up/{top_up_order_id}/payments:
parameters:
- name: cashless_tag_uid
in: path
description: cashless_tag_uid
required: true
schema:
type: string
- name: top_up_order_id
in: path
description: top_up_order_id
required: true
schema:
type: integer
get:
summary: select payment method (3)
operationId: editConsumerCashlessTagPayment
tags:
- Top Up Cashless Tag
description: 'Renders a webpage to allow the user to pay for their top up order.
Once the user has successfully completed a payment a redirect will be done to a specific URL.
'
responses:
'200':
description: successful
'400':
description: top up order invalid status
/cashless_tags/{cashless_tag_uid}/top_up/{top_up_order_id}/completes:
parameters:
- name: cashless_tag_uid
in: path
description: cashless_tag_uid
required: true
schema:
type: string
- name: top_up_order_id
in: path
description: top_up_order_id
required: true
schema:
type: integer
get:
summary: check complete (4)
operationId: getConsumerCashlessTagComplete
tags:
- Top Up Cashless Tag
description: 'Check if the top up order was completed. This request should be made after the payment web page has redirected back to the application.
'
responses:
'200':
description: successful
content:
application/json:
schema:
type: object
properties:
top_up_order:
$ref: '#/components/schemas/Order'
required:
- top_up_order
'404':
description: top up order not found
/cashless_tags/{cashless_tag_uid}/top_up/{top_up_order_id}/successful_payment:
parameters:
- name: cashless_tag_uid
in: path
description: cashless_tag_uid
required: true
schema:
type: cashless_tag_uid
- name: top_up_order_id
in: path
description: top_up_order_id
required: true
schema:
type: integer
- name: merchant_reference
in: query
description: merchant_reference
required: true
schema:
type: integer
get:
summary: submit payment method (3)
operationId: updateConsumerCashlessTagPayment
tags:
- Top Up Cashless Tag
description: '**Private API**
This end-point should only ever be called by the web page rendered using the GET version of this end-point.
'
responses:
'303':
description: successful
/cashless_tags/{cashless_tag_uid}/top_up/{top_up_order_id}/pending_successful_payment:
parameters:
- name: cashless_tag_uid
in: path
description: cashless_tag_uid
required: true
schema:
type: cashless_tag_uid
- name: top_up_order_id
in: path
description: top_up_order_id
required: true
schema:
type: integer
- name: merchant_reference
in: query
description: merchant_reference
required: true
schema:
type: integer
get:
summary: submit pending successful payment method (3)
operationId: pendingSuccessConsumerCashlessTagPayment
tags:
- Top Up Cashless Tag
description: '**Private API**
This end-point should only ever be called by the web page rendered using the GET version of this end-point.
'
responses:
'303':
description: failed
/cashless_tags/{cashless_tag_uid}/top_up/{top_up_order_id}/failed_payment:
parameters:
- name: cashless_tag_uid
in: path
description: cashless_tag_uid
required: true
schema:
type: string
- name: top_up_order_id
in: path
description: top_up_order_id
required: true
schema:
type: integer
- name: merchant_reference
in: query
description: merchant_reference
required: true
schema:
type: integer
get:
summary: submit failed payment method (3)
operationId: failedConsumerCashlessTagPayment
tags:
- Top Up Cashless Tag
description: '**Private API**
This end-point should only ever be called by the web page rendered using the GET version of this end-point.
'
responses:
'303':
description: successful
components:
schemas:
User:
type: object
properties:
id:
type: integer
readOnly: true
description: Primary Key
first_name:
type: string
description: First Name
last_name:
type: string
description: Last Name
primary_email:
type: string
readOnly: true
description: Email address of user or dummy user
dummy?:
type: boolean
readOnly: true
description: True if the user has not yet signed up for an account.
required:
- id
- first_name
- last_name
- primary_email
- dummy?
Order:
type: object
properties:
id:
type: integer
reference:
type: string
type:
type: string
status:
type: string
enum:
- pending
- paid
- expired
- pending_payment
- created
- processing
user:
$ref: '#/components/schemas/User'
cashless_deposit_cents:
type: integer
required:
- id
- reference
- status
- type
- user
- cashless_deposit_cents
securitySchemes:
oauth2:
type: oauth2
description: OAuth2 authentication for third-party applications
flows:
authorizationCode:
authorizationUrl: /oauth/authorize
tokenUrl: /oauth/token
scopes:
public: Public scope
login: Login scope
ott: One-time token scope
bearer_header:
type: http
scheme: bearer
bearerFormat: oauth2
in: header
bearer_param:
type: apiKey
scheme: bearer
bearerFormat: oauth2
name: bearer_token
in: query
jwt_header:
type: http
scheme: bearer
bearerFormat: JWT
description: JWT token obtained from basic authentication login
jwt_param:
type: apiKey
name: bearer_token
in: query
description: JWT token as query parameter (alternative to Authorization header)
basic_auth:
type: http
scheme: basic
description: Basic authentication with email and password
api_key:
type: apiKey
name: x-auth-token
in: header
description: API key authentication
bearer_auth:
type: http
scheme: bearer
bearerFormat: JWT
description: JWT token authentication