Class: Pago::V2026_04::Services::Customers::Members

Inherits:
Service
  • Object
show all
Defined in:
lib/pago/v2026_04/services/customers.rb,
sig/pago/v2026_04/generated.rbs

Instance Attribute Summary

Attributes inherited from Service

#client

Instance Method Summary collapse

Methods inherited from Service

#initialize

Constructor Details

This class inherits a constructor from Pago::Service

Instance Method Details

#create(id, body: {}) ⇒ Models::Member

Create a new member for a customer.

Only B2B customers with the member management feature enabled can add members. The authenticated user or organization must have access to the customer's organization.

Scopes: members:write

Parameters:

Returns:

Raises:



373
374
375
376
377
378
379
380
381
382
383
384
# File 'lib/pago/v2026_04/services/customers.rb', line 373

def create(id, body: {})
  data = client.request(
    http_method: "POST",
    path: "/v1/customers/{id}/members",
    path_params: { "id" => id },
    query: {},
    body: body,
    response_type: :json,
    errors: { 403 => Errors::NotPermitted, 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError }
  )
  Models::Member.from_json(data)
end

#create_external(external_id_path, body: {}) ⇒ Models::Member

Create a new member for a customer identified by its external ID.

Scopes: members:write

Parameters:

  • external_id_path (String)

    The customer external ID.

  • body (Hash, Models::MemberCreateFromCustomer) (defaults to: {})

    the request body.

  • body: (Object) (defaults to: {})

Returns:

Raises:



398
399
400
401
402
403
404
405
406
407
408
409
# File 'lib/pago/v2026_04/services/customers.rb', line 398

def create_external(external_id_path, body: {})
  data = client.request(
    http_method: "POST",
    path: "/v1/customers/external/{external_id}/members",
    path_params: { "external_id" => external_id_path },
    query: {},
    body: body,
    response_type: :json,
    errors: { 403 => Errors::NotPermitted, 404 => Errors::ResourceNotFound, 409 => Errors::AmbiguousExternalCustomerID, 422 => Errors::HTTPValidationError }
  )
  Models::Member.from_json(data)
end

#delete(id, member_id) ⇒ nil

Delete a member of a customer.

Scopes: members:write

Parameters:

  • id (String)

    The customer ID.

  • member_id (String)

Returns:

  • (nil)

Raises:



443
444
445
446
447
448
449
450
451
452
# File 'lib/pago/v2026_04/services/customers.rb', line 443

def delete(id, member_id)
  client.request(
    http_method: "DELETE",
    path: "/v1/customers/{id}/members/{member_id}",
    path_params: { "id" => id, "member_id" => member_id },
    query: {},
    response_type: :none,
    errors: { 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError }
  )
end

#delete_external(external_id, member_external_id) ⇒ nil

Delete a member by external ID for a customer identified by its external ID.

Scopes: members:write

Parameters:

  • external_id (String)

    The customer external ID.

  • member_external_id (String)

    The member external ID.

Returns:

  • (nil)

Raises:



514
515
516
517
518
519
520
521
522
523
# File 'lib/pago/v2026_04/services/customers.rb', line 514

def delete_external(external_id, member_external_id)
  client.request(
    http_method: "DELETE",
    path: "/v1/customers/external/{external_id}/members/{member_external_id}",
    path_params: { "external_id" => external_id, "member_external_id" => member_external_id },
    query: {},
    response_type: :none,
    errors: { 404 => Errors::ResourceNotFound, 409 => Errors::AmbiguousExternalCustomerID, 422 => Errors::HTTPValidationError }
  )
end

#get(id, member_id) ⇒ Models::Member

Get a member of a customer by its ID.

Scopes: members:read members:write

Parameters:

  • id (String)

    The customer ID.

  • member_id (String)

Returns:

Raises:



421
422
423
424
425
426
427
428
429
430
431
# File 'lib/pago/v2026_04/services/customers.rb', line 421

def get(id, member_id)
  data = client.request(
    http_method: "GET",
    path: "/v1/customers/{id}/members/{member_id}",
    path_params: { "id" => id, "member_id" => member_id },
    query: {},
    response_type: :json,
    errors: { 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError }
  )
  Models::Member.from_json(data)
end

#get_external(external_id, member_external_id) ⇒ Models::Member

Get a member by external ID for a customer identified by its external ID.

Scopes: members:read members:write

Parameters:

  • external_id (String)

    The customer external ID.

  • member_external_id (String)

    The member external ID.

Returns:

Raises:



491
492
493
494
495
496
497
498
499
500
501
# File 'lib/pago/v2026_04/services/customers.rb', line 491

def get_external(external_id, member_external_id)
  data = client.request(
    http_method: "GET",
    path: "/v1/customers/external/{external_id}/members/{member_external_id}",
    path_params: { "external_id" => external_id, "member_external_id" => member_external_id },
    query: {},
    response_type: :json,
    errors: { 404 => Errors::ResourceNotFound, 409 => Errors::AmbiguousExternalCustomerID, 422 => Errors::HTTPValidationError }
  )
  Models::Member.from_json(data)
end

#update(id, member_id, body: {}) ⇒ Models::Member

Update a member of a customer.

Only name, email and role can be updated.

Scopes: members:write

Parameters:

  • id (String)

    The customer ID.

  • member_id (String)
  • body (Hash, Models::MemberUpdate) (defaults to: {})

    the request body.

  • body: (Object) (defaults to: {})

Returns:

Raises:



467
468
469
470
471
472
473
474
475
476
477
478
# File 'lib/pago/v2026_04/services/customers.rb', line 467

def update(id, member_id, body: {})
  data = client.request(
    http_method: "PATCH",
    path: "/v1/customers/{id}/members/{member_id}",
    path_params: { "id" => id, "member_id" => member_id },
    query: {},
    body: body,
    response_type: :json,
    errors: { 404 => Errors::ResourceNotFound, 422 => Errors::HTTPValidationError }
  )
  Models::Member.from_json(data)
end

#update_external(external_id, member_external_id, body: {}) ⇒ Models::Member

Update a member by external ID for a customer identified by its external ID.

Scopes: members:write

Parameters:

  • external_id (String)

    The customer external ID.

  • member_external_id (String)

    The member external ID.

  • body (Hash, Models::MemberUpdate) (defaults to: {})

    the request body.

  • body: (Object) (defaults to: {})

Returns:

Raises:



537
538
539
540
541
542
543
544
545
546
547
548
# File 'lib/pago/v2026_04/services/customers.rb', line 537

def update_external(external_id, member_external_id, body: {})
  data = client.request(
    http_method: "PATCH",
    path: "/v1/customers/external/{external_id}/members/{member_external_id}",
    path_params: { "external_id" => external_id, "member_external_id" => member_external_id },
    query: {},
    body: body,
    response_type: :json,
    errors: { 404 => Errors::ResourceNotFound, 409 => Errors::AmbiguousExternalCustomerID, 422 => Errors::HTTPValidationError }
  )
  Models::Member.from_json(data)
end