openapi: 3.1.0 info: title: Remitian Tax Payment Accounts API description: The Remitian Tax Payment API enables tax software providers and accounting firms to embed tax payment initiation, validation, and confirmation directly within their existing platforms. Described as the "Stripe for tax," the API acts as a unified gateway to multiple tax authorities, replacing manual government portal logins with automated, jurisdiction-aware payment infrastructure. It provides real-time status updates via webhooks and bank-grade audit logs to track every payment from initiation to completion. Built by accountants for accountants, the API supports managing payments across multiple tax jurisdictions from a single integration point. version: 1.0.0 contact: name: Remitian Support url: https://help.remitian.com termsOfService: https://remitian.com/terms servers: - url: https://api.remitian.com description: Production Server security: - bearerAuth: [] tags: - name: Accounts description: Manage client accounts and their linked bank connections for tax payment processing. paths: /v1/accounts: get: operationId: listAccounts summary: List client accounts description: Retrieve a list of client accounts registered for tax payment processing, including their linked bank connections and verification status. tags: - Accounts parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': description: A list of client accounts content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Account' pagination: $ref: '#/components/schemas/Pagination' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createAccount summary: Create a client account description: Register a new client account for tax payment processing. The account must be linked to a verified bank connection before payments can be initiated. tags: - Accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AccountCreateRequest' responses: '201': description: Account created successfully content: application/json: schema: $ref: '#/components/schemas/Account' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /v1/accounts/{accountId}: get: operationId: getAccount summary: Retrieve a client account description: Retrieve the details of a specific client account, including linked bank connections and payment history summary. tags: - Accounts parameters: - name: accountId in: path required: true description: Unique identifier of the client account schema: type: string responses: '200': description: Account details content: application/json: schema: $ref: '#/components/schemas/Account' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: Account: type: object properties: id: type: string description: Unique account identifier name: type: string description: Display name for the client account email: type: string format: email description: Contact email for the account bankConnections: type: array description: Linked and verified bank connections items: $ref: '#/components/schemas/BankConnection' status: type: string description: Account verification status enum: - pending - verified - suspended createdAt: type: string format: date-time description: Timestamp when the account was created BankConnection: type: object properties: id: type: string description: Unique bank connection identifier institutionName: type: string description: Name of the banking institution accountLast4: type: string description: Last four digits of the bank account number pattern: ^\d{4}$ status: type: string description: Connection verification status enum: - pending - verified - failed verifiedAt: type: string format: date-time description: Timestamp when the connection was verified AccountCreateRequest: type: object required: - name - email properties: name: type: string description: Display name for the client account minLength: 1 maxLength: 255 email: type: string format: email description: Contact email for the account taxIdentifier: type: string description: Primary taxpayer identification number metadata: type: object additionalProperties: type: string description: Arbitrary key-value pairs for reference data Pagination: type: object properties: total: type: integer description: Total number of results limit: type: integer description: Maximum results per page offset: type: integer description: Current offset hasMore: type: boolean description: Whether more results are available Error: type: object properties: error: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable error message details: type: array description: Detailed error information items: type: object properties: field: type: string description: Field related to the error message: type: string description: Detail about the field error parameters: PageLimit: name: limit in: query description: Maximum number of results to return per page schema: type: integer minimum: 1 maximum: 100 default: 25 PageOffset: name: offset in: query description: Number of results to skip for pagination schema: type: integer minimum: 0 default: 0 responses: Unauthorized: description: Missing or invalid authentication credentials content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Requested resource not found content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: API key authentication using a Bearer token provided by Remitian during partner onboarding. externalDocs: description: Remitian Integration Documentation url: https://remitian.com/integrations/integrate-remitian