Step 4: Monitor the payment

After accepting the payment and sharing the link with your customer, you need to monitor its progress. Poll the payment status endpoint at regular intervals to track the payment through its lifecycle.

Make the request

Use include=link to include the blockchain payment link in the response, which is useful if you need to reshare it with your customer.

SandboxProduction
Copy
Copied
curl -i -X GET \
  'https://api-sandbox.equalsmoney.com/stablecoins/payments/{paymentId}?accountId={accountId}&include=link' \
  -H 'Authorization: ApiKey {apiKey}'
Copy
Copied
curl -i -X GET \
  'https://api.equalsmoney.com/stablecoins/payments/{paymentId}?accountId={accountId}&include=link' \
  -H 'Authorization: ApiKey {apiKey}'

Payment status lifecycle

As the payment progresses, the status field will change:

Status Meaning
PENDING Payment created and accepted, waiting for the remitter to send USDC
DETECTED USDC transfer has been detected on the blockchain and is being processed
COMPLETED Payment successfully processed — funds have been credited to your budget
FAILED Payment processing failed
EXPIRED The remitter didn't complete the transfer before the payment expired

Expected response (completed)

When the payment has been successfully processed, you'll see status: "COMPLETED":

Copy
Copied
{
  "id": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
  "accountId": "F50091",
  "budgetId": "775596ae-2624-40af-a9dc-9756110a4a03",
  "status": "COMPLETED",
  "remitterId": "a1111111-2222-3333-4444-555555555555",
  "amount": 100,
  "displayName": "Invoice #12345",
  "sourceCurrencyCode": "USDC",
  "destinationCurrencyCode": "USD",
  "returnUrl": "https://www.example.com/payment-complete",
  "link": {
    "url": "https://pay.sandbox.example.com/channel?uuid=9d1f67f2-a647-404b-9b02-247c77be81d0",
    "chains": [
      {
        "protocol": "ETH",
        "address": "0x0000000000000000000000000000000000000000"
      }
    ]
  },
  "expiresAt": "2025-01-30T10:00:00.000Z",
  "createdBy": "John Smith",
  "createdAt": "2025-01-30T09:00:00Z",
  "updatedAt": "2025-01-30T09:00:00Z"
}

Once the status is COMPLETED, the converted USD funds are available in your budget.

info

If a payment expires or fails, you'll need to create a new payment and accept it again. See Handling payment expiry and failure for more details.

Next