dLocal · Arazzo Workflow

dLocal Enroll and Charge Recurring

Version 1.0.0

Enroll a payer for Pix Automatico, confirm the enrollment is ACTIVE, then place the first recurring charge.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub PaymentsEmerging MarketsPayinsPayoutsFintechLatin AmericaAfricaAsiaLocal Payment MethodsPayment ProcessingArazzoWorkflows

Provider

dlocal

Workflows

enroll-and-charge-recurring
Enroll a payer for Pix recurring and charge them once the enrollment is ACTIVE.
Creates a Pix enrollment, confirms it is ACTIVE, and creates the first recurring payment when active or ends to await payer authorization when not.
3 steps inputs: amount, country, currency, maxAmount, notificationUrl, orderId, payerDocument, payerEmail, payerName outputs: enrollmentId, paymentId
1
createEnrollment
createEnrollment
Enroll the payer for Pix Automatico recurring transactions.
2
confirmEnrollment
getEnrollment
Retrieve the enrollment to confirm whether it became ACTIVE before charging.
3
chargeRecurring
Create the first recurring Pix payment now that the enrollment is active.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: dLocal Enroll and Charge Recurring
  summary: Enroll a payer for Pix Automatico, confirm the enrollment is ACTIVE, then place the first recurring charge.
  description: >-
    Sets up Brazil's Pix Automatico recurring payments. The workflow enrolls a
    payer, retrieves the enrollment to confirm it became ACTIVE, and then
    branches: when the enrollment is active it creates the first recurring
    payment, otherwise it ends so the caller can drive the payer through the
    redirect_url returned at enrollment. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: enrollmentsApi
  url: ../openapi/_superseded/d-local-enrollments-api-openapi.yml
  type: openapi
- name: paymentsApi
  url: ../openapi/_superseded/d-local-payments-api-openapi.yml
  type: openapi
workflows:
- workflowId: enroll-and-charge-recurring
  summary: Enroll a payer for Pix recurring and charge them once the enrollment is ACTIVE.
  description: >-
    Creates a Pix enrollment, confirms it is ACTIVE, and creates the first
    recurring payment when active or ends to await payer authorization when not.
  inputs:
    type: object
    required:
    - country
    - notificationUrl
    - payerName
    - payerEmail
    - payerDocument
    - amount
    - currency
    - orderId
    properties:
      country:
        type: string
        description: ISO 3166-1 alpha-2 country code (e.g. BR).
      notificationUrl:
        type: string
        description: URL to receive asynchronous enrollment and payment notifications.
      payerName:
        type: string
        description: Full name of the payer.
      payerEmail:
        type: string
        description: Email address of the payer.
      payerDocument:
        type: string
        description: National identification document of the payer.
      maxAmount:
        type: number
        description: Maximum amount authorized per recurring charge.
      amount:
        type: number
        description: Amount of the first recurring charge.
      currency:
        type: string
        description: ISO-4217 currency code (e.g. BRL).
      orderId:
        type: string
        description: Merchant-provided order identifier for the first charge.
  steps:
  - stepId: createEnrollment
    description: >-
      Enroll the payer for Pix Automatico recurring transactions.
    operationId: createEnrollment
    requestBody:
      contentType: application/json
      payload:
        country: $inputs.country
        type: PIX_AUTOMATICO
        notification_url: $inputs.notificationUrl
        max_amount: $inputs.maxAmount
        payer:
          name: $inputs.payerName
          email: $inputs.payerEmail
          document: $inputs.payerDocument
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      enrollmentId: $response.body#/id
      status: $response.body#/status
      redirectUrl: $response.body#/redirect_url
  - stepId: confirmEnrollment
    description: >-
      Retrieve the enrollment to confirm whether it became ACTIVE before
      charging.
    operationId: getEnrollment
    parameters:
    - name: enrollment_id
      in: path
      value: $steps.createEnrollment.outputs.enrollmentId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
    onSuccess:
    - name: active
      type: goto
      stepId: chargeRecurring
      criteria:
      - context: $response.body
        condition: $.status == "ACTIVE"
        type: jsonpath
    - name: awaitingAuthorization
      type: end
      criteria:
      - context: $response.body
        condition: $.status != "ACTIVE"
        type: jsonpath
  - stepId: chargeRecurring
    description: >-
      Create the first recurring Pix payment now that the enrollment is active.
    operationId: createPayment
    requestBody:
      contentType: application/json
      payload:
        amount: $inputs.amount
        currency: $inputs.currency
        country: $inputs.country
        payment_method_id: PIX
        payment_method_flow: DIRECT
        order_id: $inputs.orderId
        notification_url: $inputs.notificationUrl
        payer:
          name: $inputs.payerName
          email: $inputs.payerEmail
          document: $inputs.payerDocument
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      paymentId: $response.body#/id
      status: $response.body#/status
  outputs:
    enrollmentId: $steps.createEnrollment.outputs.enrollmentId
    paymentId: $steps.chargeRecurring.outputs.paymentId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/dlocal-enroll-and-charge-recurring-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.