Papaya Global Groups API
Manage payment groups to consolidate payment requests
Manage payment groups to consolidate payment requests
openapi: 3.1.0
info:
title: Papaya Global Workforce Payments Authentication Groups API
description: 'REST API for managing global workforce payments, beneficiaries, wallets, and payment instructions across 160+ countries. Provides endpoints for creating and managing wallets, beneficiaries, payment groups, and payment instructions for international payroll and contractor payments.
'
version: 1.0.0
contact:
name: Papaya Global Support
url: https://docs.papayaglobal.com/
termsOfService: https://www.papayaglobal.com/terms-of-service/
license:
name: Proprietary
url: https://www.papayaglobal.com/terms-of-service/
servers:
- url: https://api.papayaglobal.com/api/v1
description: Production
- url: https://sandbox.papayaglobal.com/api/v1
description: Sandbox
security:
- BearerAuth: []
tags:
- name: Groups
description: Manage payment groups to consolidate payment requests
paths:
/payments/groups:
post:
operationId: createGroup
summary: Create Payment Group
description: Create a new payment group to consolidate payment requests.
tags:
- Groups
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GroupCreateRequest'
responses:
'201':
description: Payment group created
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
get:
operationId: listGroups
summary: List Payment Groups
description: Retrieve a list of payment groups with optional filtering.
tags:
- Groups
parameters:
- name: id
in: query
schema:
type: array
items:
type: string
description: Filter by group IDs
- name: name
in: query
schema:
type: string
- name: description
in: query
schema:
type: string
- name: locked
in: query
schema:
type: array
items:
type: boolean
- name: wallet
in: query
schema:
type: array
items:
type: string
- name: skip
in: query
schema:
type: integer
default: 0
- name: take
in: query
schema:
type: integer
default: 50
responses:
'200':
description: List of payment groups
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/GroupWithInfo'
paging:
$ref: '#/components/schemas/Paging'
'401':
$ref: '#/components/responses/Unauthorized'
/payments/groups/{id}:
get:
operationId: getGroup
summary: Get Group Details
description: Retrieve detailed information about a specific payment group.
tags:
- Groups
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Payment group details
content:
application/json:
schema:
$ref: '#/components/schemas/GroupWithInfo'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateGroup
summary: Update Payment Group
description: Update details of an existing payment group.
tags:
- Groups
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GroupUpdateRequest'
responses:
'200':
description: Updated payment group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteGroup
summary: Delete Payment Group
description: Delete a payment group and optionally clear associated payments.
tags:
- Groups
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: clear
in: query
schema:
type: boolean
description: Clear associated payments when deleting
responses:
'200':
description: Group deleted
content:
application/json:
schema:
type: object
properties:
group:
type: object
properties:
id:
type: string
result:
type: string
payments:
type: array
items:
type: object
properties:
type:
type: string
id:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/payments/groups/{id}/lock:
patch:
operationId: lockGroup
summary: Lock Payment Group
description: Lock a payment group to prevent further modifications.
tags:
- Groups
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Group locked
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: unlockGroup
summary: Unlock Payment Group
description: Unlock a payment group to allow modifications.
tags:
- Groups
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Group unlocked
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
GroupWithInfo:
allOf:
- $ref: '#/components/schemas/Group'
- type: object
properties:
wallet_details:
$ref: '#/components/schemas/Wallet'
payment_funding:
type: object
payment_status:
type: object
GroupCreateRequest:
type: object
required:
- wallet
- name
properties:
wallet:
type: string
description: Wallet ID to associate with the group
name:
type: string
description:
type: string
user_tags:
type: object
Error:
type: object
properties:
error:
type: string
description:
type: string
error_code:
type: string
sub_code:
type: string
error_info:
type: object
properties:
timestamp:
type: string
format: date-time
path:
type: string
Wallet:
type: object
properties:
id:
type: string
type:
type: string
currency:
type: string
description: ISO 4217 currency code
name:
type: string
owner:
type: string
funding:
type: object
properties:
name:
type: string
country:
type: string
account_number:
type: string
bic:
type: string
iban:
type: string
balance:
type: number
format: double
user_tags:
type: object
state:
type: string
Group:
type: object
properties:
type:
type: string
id:
type: string
description:
type: string
locked:
type: boolean
name:
type: string
user_tags:
type: object
wallet:
type: string
GroupUpdateRequest:
type: object
properties:
name:
type: string
description:
type: string
user_tags:
type: object
Paging:
type: object
properties:
skip:
type: integer
take:
type: integer
responses:
Unauthorized:
description: Unauthorized - authentication failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request - missing or invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT