Skip to content

Create Branch / Issue Point

Creates a new branch or issue point for the authenticated tenant. The new issuer inherits the RUC, business name, and certificate from an existing issuer of the tenant. No new API key is minted — your existing tenant key already covers every branch via the X-Issuer-Id header.

POST /v1/issuers

Authentication

Authorization: Bearer <api-key>

Rate limiting

Write limiter — tier-dependent (10–300 req/min per API key).

Request body

multipart/form-data. If no P12 file is uploaded, the new branch reuses the certificate from another of your existing issuers.

FieldTypeRequiredDescription
branchCodestringYes3-digit SRI branch code, e.g. 002
issuePointCodestringYes3-digit SRI issue point code, e.g. 001
branchAddressstringNoBranch address (max 300 chars)
documentTypesarrayNoDocument type codes to enable (default: ["01"])
initialSequentialsarrayNoStarting sequential numbers: [{ "documentType": "01", "sequential": 1 }]
sourceIssuerIdintegerNoNumeric id of the issuer to inherit cert/profile from. Defaults to the tenant's first existing issuer. Ignored if a cert file is uploaded.
certfileNoP12 certificate file — only needed if this branch uses a different certificate
certPasswordstringNoP12 password — only when providing a cert file

Inherited from the source issuer

When no P12 file is uploaded, the following fields are copied from the source issuer (either the one named in sourceIssuerId or the tenant's first issuer):

  • ruc, businessName, tradeName, mainAddress
  • environment, emissionType, requiredAccounting, specialTaxpayer
  • Certificate data (encryptedPrivateKey, certificatePem, certFingerprint, certExpiry)

Tier limits

TierMax branchesMax issue points per branch
FREE11
STARTER32
GROWTH105
BUSINESSUnlimitedUnlimited

A new branch is counted when branchCode does not yet exist for the tenant. Adding a second issue point to an existing branch counts against maxIssuePointsPerBranch.

Response

201 Created

json
{
  "ok": true,
  "issuer": {
    "id": 2,
    "ruc": "1712345678001",
    "businessName": "My Company S.A.",
    "tradeName": "My Company",
    "branchCode": "002",
    "issuePointCode": "001",
    "branchAddress": "Av. 6 de Diciembre 123",
    "certFingerprint": "SHA256:...",
    "certExpiry": "2027-01-01T00:00:00.000Z"
  }
}

The returned id is what you pass as X-Issuer-Id on document requests targeting this branch. New branches inherit the tenant's current environment (sandbox or production). Use POST /v1/tenants/promote to promote the entire tenant to production.

Errors

StatusCodeWhen
400VALIDATION_ERRORMissing or invalid fields, or the tenant has no existing issuer to inherit from and no P12 was uploaded
401UNAUTHORIZEDMissing or invalid API key
402PAYMENT_REQUIREDBranch or issue point limit reached for this tier
403FORBIDDENTenant email not yet verified
404NOT_FOUNDsourceIssuerId does not exist or belongs to a different tenant
409CONFLICTA branch with this branchCode + issuePointCode combination already exists

Comprobify API Documentation