Acme Documentation

website·Indexed 33 days ago

https://docs.tryacme.com

Technical guides for integrating with Acme's payment APIs and Host-to-Host (H2H) services. Includes documentation on authentication, idempotency, rate limits, and specific bank payment implementations across various regions including Australia, Mexico, Singapore, Brazil, China, Indonesia, Korea, Malaysia, Taiwan, and the US.

Tokens
102.2K
Snippets
284
Records
496
Agent score
51%

What's inside Acme

  1. Overview of Acme Money Movement API

    Acme provides a single REST API (JSON-over-HTTPS) that abstracts the protocols, file formats, and payment rails of multiple banks. It allows developers to integrate once to handle payments, collections, accounts, and foreign exchange (FX) across various financial institutions without building bank-specific integrations.
  2. Overview of Standard Chartered Bank Singapore H2H Payments

    Acme supports host-to-host (H2H) file integration for payments via Standard Chartered Bank (SCB) Singapore (SWIFT BIC: SCBLSG22XXX). The system validates data formats and rules that may be stricter than the bank's own requirements. Supported payment types include FAST, GIRO, MEPS, SG_PAYROLL, BKTR, and TT.
  3. Get started with the Acme REST API

    Acme provides a REST API for money movement and treasury operations that abstracts underlying banking services and protocols. The API uses HTTPS and communicates exclusively via JSON-encoded requests and responses. To begin integration, contact Acme to obtain a test API key. A dedicated test mode is available for development, which does not interact with real banks or affect live data.
  4. UOB Singapore Payment Field Validations Overview

    Payments processed through UOB Singapore are subject to specific data format and validation rules. A critical requirement for all payment types is the receiver.address.country field, which must be a mandatory, uppercase 2-letter ISO 3166 Alpha-2 country code (e.g., SG, MY, AU, US).

    Many fields use the SWIFT Character Set, which consists of:

    • Uppercase and lowercase Latin letters (A-Z, a-z)
    • Digits 0-9
    • Special characters: /, -, ?, :, (, ), ., ,, ', +, and space.
  5. List report files for an organization

    Use the GET /v1/report-files endpoint to list the report files Acme has retrieved from banks on your behalf. Each entry provides metadata about a file. Note that report files are available for 30 days after creation; check the expiresAt field for the specific expiry timestamp. To retrieve the actual file content, use the report ID with the 'Download a Report File' endpoint.
    curl -X GET "https://example.com/v1/report-files" \
      -H "Authorization: Bearer <token>"
  6. Migrate MEPS and TT payments from V4 to V6 (ISO 20022)

    Migrating to the V6 Payment API introduces several breaking changes for MEPS and TT payments. You must sanitize stored payee names and update address logic before migrating.

    Breaking Changes:

    • receiver.name: Now strictly enforced as SWIFT charset, up to 140 characters. Characters like !, #, $, %, &, *, ;, =, @, [, ], ^, _, `, {, }, |, ~ will cause rejection.
    • receiver.address.city: Now Mandatory (was optional in V4).
    • receiver.address.country: Now Mandatory and must be an ISO 3166-1 alpha-2 code (e.g., SG).
    • receiver.address.postalCode: Max length reduced from 35 to 16.

    Non-Breaking Changes:

    • receiver.address.line1 and line2 max length increased from 35 to 70.
  7. Execute a cross-border SWIFT transfer (TT)

    Use TT (Telegraphic Transfer) for cross-border payments.

    Requirements:

    • receiver.bank (SWIFT BIC) is mandatory.
    • currency must be a valid ISO 4217 currency code.
  8. Execute a Telegraphic Transfer (TT) for international payments

    Use TT for international payments.

    Critical Constraints:

    • TWD Amounts: Must not have cents/decimals (amount must end in 00).
    • Payment Date: Cannot be in the past; maximum 21 days forward.
    • Regulatory Reporting: Taiwan Central Bank requires beneficiaryType, transactionNature, purposeCode, subCode, and specialApproval. Acme assembles these into a specific string for the bank. Refer to the Citibank Taiwan Central Bank Reporting Code for valid values.
    • SubCode: Mandatory if purposeCode is 692, 693, or 695.
    {
      "payments": [
        {
          "beneficiaryType": "1", // 1: Govt, 2: Public, 3: Private, 4: FX Funds
          "transactionNature": "S", // One of S, Y, B, A, C, I, G, J, E, R, T, X, 4
          "purposeCode": "194", // Alphanumeric, exactly 3 chars
          "specialApproval": "N", // Y or N
          "receiver": {
            "name": "Recipient Name",
            "bank": "CITITWXXXX", // BIC 8 or 11 chars
            "bankAccountNumber": "123456789",
            "address": {
              "city": "Taipei", // Mandatory
              "country": "TW" // ISO 3166-1 alpha-2, Mandatory
            }
          }
        }
      ]
    }
  9. Execute FAST payments via Maybank Singapore

    FAST payments are used for real-time transfers.

    Constraints:

    • Maximum amount: SGD 200,000 per transaction.
    • purposeCode: Mandatory (4 characters). Refer to the Association of Banks in Singapore (ABS) mnemonic purpose codes.
    • receiver.bank: Must be the beneficiary bank's BIC11 (max 11 alphanumeric characters).
    • receiver.bankAccountNumber: Must be numeric digits only (max 34 characters).
    {
      "type": "FAST",
      "paymentDate": "2026-06-30",
      "senderAccountId": "intacc_0H3BQNTQGBW2W",
      "senderAccountCurrency": "SGD",
      "currency": "SGD",
      "payments": [
        {
          "amount": 10000,
          "customerReference": "INV-001",
          "paymentDetails": "Payment for invoice 001",
          "purposeCode": "OTHR",
          "receiver": {
            "name": "Tan Ah Kow",
            "bank": "DBSSSGSGXXX",
            "bankAccountNumber": "9876543210"
          }
        }
      ]
    }
  10. Execute in-house book transfers using BKTR

    Use the BKTR payment type for in-house book transfers between Banco Azteca (AZTKMXMMXXX) accounts.

    Key Field Validations:

    • receiver.bankAccountNumber: Must be a numeric Banco Azteca account number (14 or 20 digits).
    • paymentDetails: The debit reference (concepto de pago) shown on the sender's statement (Mandatory, max 30 characters).
    • customerReference: The payment reference (concepto de pago) shown to the receiver (Optional, max 30 characters). If omitted, Acme defaults this to the value of paymentDetails.
    • The beneficiary account is always treated as a checking account.

    Book transfers and comprobantes are typically completed within 1 minute.

    {
      "type": "BKTR",
      "amount": 150000,
      "currency": "MXN",
      "senderAccountId": "intacc_0H3BQNTQGBW2W",
      "customerReference": "Pago de servicios",
      "paymentDetails": "Payment for invoice 001",
      "receiver": {
        "name": "Comercializadora Azteca SA de CV",
        "bankAccountNumber": "12345678901234"
      }
    }
  11. Create a Malaysia Instant Fund Transfer (MY_IBFT) payment

    Use the MY_IBFT type for instant transfers via DuitNow Bank Account Transfer.

    Constraints:

    • Currency must be MYR.
    • customerReference is mandatory and limited to 20 characters.
    • receiver.residencyStatus is mandatory (RESIDENT or NON_RESIDENT).
    • receiver.accountType is mandatory (CHECKING or SAVINGS).
    • receiver.bank must be an 11-character BIC/SWIFT code.
    {
      "type": "MY_IBFT",
      "amount": 1000,
      "currency": "MYR",
      "senderAccountId": "intacc_0H3BQNTQGBW2W",
      "customerReference": "INV-001",
      "paymentDetails": "Payment for invoice 001",
      "paymentAdviceEmails": ["finance@example.com"],
      "receiver": {
        "name": "Ahmad bin Ali",
        "bank": "PBBEMYKLXXX",
        "bankAccountNumber": "1234567890",
        "residencyStatus": "RESIDENT",
        "accountType": "SAVINGS"
      }
    }
  12. Encrypt sensitive information for Acme using PGP

    To ensure that only Acme can decrypt sensitive or confidential information, use Acme's PGP public key for encryption. After importing the key, verify it against the following identity details:

    • Key ID: 62ED3283F9F7E413
    • User ID: Acme Technology (Acme Technology - secure file sharing) <support@tryacme.com>
    • Key fingerprint: FF73 91B5 8765 F43A E868 9CB7 62ED 3283 F9F7 E413
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    mQENBGWfjUkBCACQ8X9tRoMzg5jOuP93FoAO5CVx+32MmwjrUj1UMlogdBSdY0/3
    LQ7u7/JzIJamEpey7itHLU20tnYIveZxXlZRUVhjI/LAbWqrTLdwu1AALHFBLIio
    LDU4zl4QOsfRIurbuTUsSXMVt90nkVRU8frwNo2/Vv4u5dzvbwkxOJxhPTuEZIVZ
    2RJXSQQ6jImCl3tIyrqPPoT8hy8iLSSNqopsYkP6g1IRXtPcThToqeArk2V2/ddF
    Hi7obyTAKzVoR4ojcdClfbaKGJHycFSLDekl3VPuV0BUDJyjyB1VL6QrNHIi2o/y
    bl/eEk4kD9RJKxlDq9lpXGeG3TqZoc++iRZXABEBAAG0TUFjbWUgVGVjaG5vbG9n
    eSAoQWNtZSBUZWNobm9sb2d5IC0gc2VjdXJlIGZpbGUgc2hhcmluZykgPHN1cHBv
    cnRAdHJ5YWNtZS5jb20+iQFXBBMBCABBFiEE/3ORtYdl9DroaJy3Yu0yg/n35BMF
    AmWfjUkCGwMFCQlbdYAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQYu0y
    g/n35BP+yQf/a+NCpP4BwlcoJze8ziC9C1PX2InW2Rq6J+IbFrjbkyAFhA9+QMe8
    uzNAFxPYQBCdBa5WdkndVflFup0BdKVwbpyIAbHRqvwlKUu2rQly+ewn/B6jyF0U
    CguhVLXTQGK3K/E4+fk0XcJJSNsqdtuxq40Dj7Dehufuuy3LwKEp3JRqLeMp7Zo/
    OHwadBdvTCJ0cBWO8WfmHDHqrN9oADnr4MJKuzPTk1/FRni5vZc77J2UCULsi3yA
    HD6WCv1Aff1kD2bYe4j7S57AX7JBgLH8aEitATaL6pVXUV2h3KZqTmerFqPmdevl
    +15WT4n26iCDVuIiIVsZ23g/Oz9XjX0HVLkBDQRln41JAQgApPX6KHZqnvKahTyl
    hrfYUhUYyLNdFS9jmTwE553SAXwsI+UR/orEz3jsK06AHzOlc/3rGrt7udrrSEwm
    OoZmEV1yX97Qt2pGQdoMr1P2tyhkNOxW7bIq4pyzO1bD2dQnQmfOvE/eDG1wfvUB
    V3sp30RCMoJxloLH+3KEM7h1EGlS8E0FHZJqkrlGmgNK3ywZ2RqfVvMjpNCj56Hg
    lkukbuktHD2sHUD28UUzICMAtB8XLFXZUoRskeO21hlwIw0o+PTMZFl/LjFdC+dI
    ytg9H/ZQCsXqFSx6L0nhOakykxCXFo/PA8vqF3WkIhHpkHrSj6bIB2dnBO5brMoW
    V5TyHQARAQABiQE8BBgBCAAmFiEE/3ORtYdl9DroaJy3Yu0yg/n35BMFAmWfjUkC
    GwwFCQlbdYAACgkQYu0yg/n35BPEoQf/VsxFk0AoUYx3KIkDMU1ptRJant6PVZwr
    giccXZ0oaJ4QLzWeW8ArATpkmIu4B8xiXir8d8PDhLmAMMZop9XhdpNP8GByzMmH
    jxbvLnZYrdHDI8uIwFVGUtNDrkFfQITz2DTGUqwkm+uvxCD32IG2q8m+9wTRUIdi
    EskOWIoRzujrTsNxaRcaFDEkFttxPZbbSKQPtKZO8lsNl2U6WggWr1kZV69IIM8b
    KDZWF8oZ8+1MR1LX2nQ13qj9Eq2bx7eSa3lHoUV092QFpcsX3JHa776ajL4M6tsL
    G1JtwTuvBH/gyN7IfUJ2pj1eAebeDUaoOwtKzyTxXjC7y6BcIIBVJw==
    =ro9p
    -----END PGP PUBLIC KEY BLOCK-----