dLocal · Arazzo Workflow

dLocal Create Payment and Confirm Status

Version 1.0.0

Discover a supported payment method, create a payment, then poll its status until it settles.

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

Provider

dlocal

Workflows

create-payment-and-confirm-status
Resolve a payment method, create a payment, and confirm its final status.
Searches the payment methods for the country, creates a payment with the supplied payer and order details, and then either ends when the payment is immediately PAID or polls the status endpoint until it leaves the PENDING state.
3 steps inputs: amount, country, currency, notificationUrl, orderId, payerDocument, payerEmail, payerName, paymentMethodId outputs: finalStatus, paymentId
1
listPaymentMethods
List the local payment methods supported for the target country so the caller can confirm the chosen method is available before charging.
2
createPayment
Create a payment with the supplied amount, currency, and payer using a DIRECT payment method flow.
3
pollStatus
retrievePaymentStatus
Retrieve the lightweight status snapshot for the payment to confirm whether it has settled or remains pending.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: dLocal Create Payment and Confirm Status
  summary: Discover a supported payment method, create a payment, then poll its status until it settles.
  description: >-
    The canonical dLocal payins flow. The workflow first lists the local
    payment methods available for the target country, then creates a payment
    using the supplied payer and amount, and finally branches on the create
    response: if the payment is already PAID it ends, otherwise it polls the
    lightweight status endpoint until the payment resolves. 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: paymentsApi
  url: ../openapi/_superseded/d-local-payments-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-payment-and-confirm-status
  summary: Resolve a payment method, create a payment, and confirm its final status.
  description: >-
    Searches the payment methods for the country, creates a payment with the
    supplied payer and order details, and then either ends when the payment is
    immediately PAID or polls the status endpoint until it leaves the PENDING
    state.
  inputs:
    type: object
    required:
    - country
    - currency
    - amount
    - orderId
    - payerName
    - payerEmail
    - payerDocument
    properties:
      country:
        type: string
        description: ISO 3166-1 alpha-2 country code for the payment (e.g. BR).
      currency:
        type: string
        description: ISO-4217 three-letter currency code (e.g. BRL).
      amount:
        type: number
        description: Transaction amount in the specified currency.
      orderId:
        type: string
        description: Merchant-provided order identifier.
      paymentMethodId:
        type: string
        description: Local payment method code to charge (e.g. PIX, CARD).
      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.
      notificationUrl:
        type: string
        description: URL to receive asynchronous payment status notifications.
  steps:
  - stepId: listPaymentMethods
    description: >-
      List the local payment methods supported for the target country so the
      caller can confirm the chosen method is available before charging.
    operationId: searchPaymentMethods
    parameters:
    - name: country
      in: query
      value: $inputs.country
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      paymentMethods: $response.body
  - stepId: createPayment
    description: >-
      Create a payment with the supplied amount, currency, and payer using a
      DIRECT payment method flow.
    operationId: createPayment
    requestBody:
      contentType: application/json
      payload:
        amount: $inputs.amount
        currency: $inputs.currency
        country: $inputs.country
        payment_method_id: $inputs.paymentMethodId
        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
      redirectUrl: $response.body#/redirect_url
    onSuccess:
    - name: alreadyPaid
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "PAID"
        type: jsonpath
    - name: needsPolling
      type: goto
      stepId: pollStatus
      criteria:
      - context: $response.body
        condition: $.status != "PAID"
        type: jsonpath
  - stepId: pollStatus
    description: >-
      Retrieve the lightweight status snapshot for the payment to confirm
      whether it has settled or remains pending.
    operationId: retrievePaymentStatus
    parameters:
    - name: payment_id
      in: path
      value: $steps.createPayment.outputs.paymentId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      finalStatus: $response.body#/status
      statusDetail: $response.body#/status_detail
  outputs:
    paymentId: $steps.createPayment.outputs.paymentId
    finalStatus: $steps.pollStatus.outputs.finalStatus

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-create-payment-and-confirm-status-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.