OpenAPI Specification
openapi: 3.0.3
info:
title: Tithe.ly Accounts Organizations API
description: 'The Tithe.ly API lets churches and approved partners integrate with the Tithe.ly giving and church-technology platform. Access is gated: it is granted by request to organizations that use (or are moving to) Tithe.ly, and approved requesters receive public and private API keys by email. Two documented generations are modeled here. The V1 payments API handles PCI-safe tokenization (via the hosted Tithely.js library) and charging of tokenized cards and bank accounts. The V2 REST API handles login, organizations, payment categories (giving funds), donation transactions, and templated mail. Endpoint paths and methods are drawn from Tithe.ly''s public documentation; request and response schemas are modeled from the documented behavior because the full field-level schemas are only exposed to approved API-key holders in the private developer docs. Test traffic uses the tithelydev.com hosts; production uses tithe.ly.'
version: '2.0'
contact:
name: Tithe.ly Support
url: https://docs.tithe.ly/reference/introduction
email: support@tithe.ly
servers:
- url: https://tithe.ly/api/v2
description: V2 REST API (live)
- url: https://tithe.ly/api/v1
description: V1 payments/tokenization API (live)
- url: https://tithelydev.com/api/v1
description: V1 payments/tokenization API (test/sandbox)
tags:
- name: Organizations
description: Look up churches/organizations.
paths:
/organization/{id}:
get:
operationId: getOrganization
tags:
- Organizations
summary: Retrieve one or more organizations
description: Retrieves a single organization by ID, or multiple organizations when a comma-separated list of IDs is supplied.
security:
- apiKeyAuth: []
parameters:
- name: id
in: path
required: true
description: Organization ID, or comma-separated list of organization IDs.
schema:
type: string
responses:
'200':
description: The requested organization(s).
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/organization-owner/{id}:
get:
operationId: getOrganizationsByOwner
tags:
- Organizations
summary: Search organizations by owner
description: Returns the organizations owned by the given owner (user) ID.
security:
- apiKeyAuth: []
parameters:
- name: id
in: path
required: true
description: Owner (user) ID.
schema:
type: string
responses:
'200':
description: Organizations for the owner.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Organization'
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
Organization:
type: object
description: Modeled from documented organization lookup responses.
properties:
id:
type: string
name:
type: string
owner_id:
type: string
status:
type: string
Error:
type: object
properties:
error:
type: string
message:
type: string
responses:
NotFound:
description: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid API credentials.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: Authorization
description: 'V2 requests use the header "Authorization: {API_ID}:{API_TOKEN}", where the ID and token come from the public/private API keys issued on access approval (and via the login endpoint). V1 payment calls use the private key issued on approval.'