This guide explores Yuno’s NuPay integration using the Direct workflow. You’ll learn how to:Documentation Index
Fetch the complete documentation index at: https://docs.y.uno/llms.txt
Use this file to discover all available pages before exploring further.
- Enroll NuPay as a customer payment method
- Make payments without enrollment (2FA mode)
- Make payments with installments (payment conditions)
- Set up subscriptions
Requirements
Before starting, you need:- A Yuno account with Dashboard access
- API keys and an
account_id(found in dashboard) - A customer created in Yuno (or create one in Step 1)
Create and manage customers
Create the customer once using your externalmerchant_customer_id, then retrieve by Yuno id or by merchant_customer_id as needed.
- Use the Create Customer endpoint and provide your own
merchant_customer_id(the unique id of the customer in your system). The response returnsidwhich is the Yuno customer id. - Use Retrieve Customer with the Yuno
id. - Use Retrieve Customer by External Id with query parameter
merchant_customer_id.
Enroll NuPay payment method
Follow these steps to enrollNU_PAY_ENROLLMENT to a customer using the Direct workflow.
Step 1: Create a customer
If you don’t have a customer yet, create one as shown above. You’ll use the returned customerid.
Step 2: Enroll the payment method
Use Enroll Payment Method with the following request parameters:- type:
NU_PAY_ENROLLMENT - account_id: UUID of your account (from the Yuno Dashboard)
- workflow:
DIRECT
- vaulted_token: UUID for the enrolled payment method
- status:
READY_TO_ENROLL - sub_status:
WAITING_ADDITIONAL_STEP - action:
REDIRECT_URL - redirect_url: URL to redirect the customer to Nu for authentication
Step 3: Redirect the customer
Redirect the customer to theredirect_url. The customer completes the Nu flow. Nu notifies Yuno of the final state.
Step 4: Confirm enrollment
Use Retrieve Enrolled Payment Method by id with thevaulted_token. A successful enrollment returns:
- status:
ENROLLED - sub_status:
ENROLLED
Payments without enrollment (2FA mode)
You can accept one-time payments with NuPay without requiring the customer to enroll their payment method. This is often referred to as 2FA mode, as the customer authenticates each transaction individually.Step 1: Create a payment
Use Create payment with the Direct workflow and theNU_PAY payment method type. In this mode, you don’t need a vaulted_token.
Step 2: Handle the response
Since this mode requires customer authentication, the response will return an action to redirect the user.- status:
READY_TO_PAY - sub_status:
WAITING_ADDITIONAL_STEP - action:
REDIRECT_URL - redirect_url: URL to redirect the customer to Nu for 2FA authentication.
Step 3: Confirm payment
After the customer completes the authentication, use Retrieve payment by id to confirm the final status.Payments with payment conditions (installments)
NuPay supports installments for both enrolled payment methods and one-time payments (2FA mode).Step 1: Ensure prerequisites
Depending on the flow, you’ll need:- Enrollment Flow: A Yuno customer
idand an enrolled NuPayvaulted_token. - 2FA Mode: Customer details, specifically their tax ID (CPF) and email.
Step 2: Get payment conditions
Request available installment options for NuPay using the APM installments endpoint. The request parameters vary based on the integration flow.- Enrollment Flow
- 2FA Mode
id, available installments, and amounts. Select a plan id and an allowed installments number.
Step 3: Create payment
Use Create payment with the Direct workflow and NuPay type. Include the selected plan id and installments in the walletcard_data.
Step 4: Retrieve payment
Use Retrieve payment by id to confirm final status.Subscription flow
You can use NuPay for recurring charges.- Create a customer
- Enroll NuPay as a payment method (see above)
- Create a subscription with the enrolled
vaulted_tokenusing Create subscription - Retrieve the subscription using Retrieve subscription
Limitations
- Subscriptions with NuPay do not support payment conditions (installments)
- Creating subscriptions directly within a payment request is not supported